0% menganggap dokumen ini bermanfaat (0 suara)
8 tayangan48 halaman

Modul Pemrograman Mobile BAB VI Part I

Dokumen ini membahas tentang pemrograman Java, termasuk konsep dasar Object-Oriented Programming (OOP), cara menginstal IDE Java seperti Netbeans, dan struktur dasar program Java. Selain itu, dokumen ini juga menjelaskan tipe data, operator, dan percabangan dalam Java, serta memberikan contoh praktikum untuk memperdalam pemahaman. Pembaca diharapkan dapat memahami dan menerapkan konsep-konsep tersebut dalam pembuatan aplikasi menggunakan Java.

Diunggah oleh

Idham Nur
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
8 tayangan48 halaman

Modul Pemrograman Mobile BAB VI Part I

Dokumen ini membahas tentang pemrograman Java, termasuk konsep dasar Object-Oriented Programming (OOP), cara menginstal IDE Java seperti Netbeans, dan struktur dasar program Java. Selain itu, dokumen ini juga menjelaskan tipe data, operator, dan percabangan dalam Java, serta memberikan contoh praktikum untuk memperdalam pemahaman. Pembaca diharapkan dapat memahami dan menerapkan konsep-konsep tersebut dalam pembuatan aplikasi menggunakan Java.

Diunggah oleh

Idham Nur
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 48

MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

BAB VI
JAVA FUNDAMENTAL

A. Java
Java merupakan bahasa pemrograman yang dikembangkan dari bahasa C. Java sendiri
merupakan bahasa pemrograman berbasis Object-Oriented-Programming (OOP). Jika dianalogikan,
object adalah sebuah masalah yang merupakan gabungan dari beberapa masalah / object yang lebih
kecil.
Sebagai contoh, misalnya sebuah motor. Motor itu sendiri terbentuk dari beberapa object
yang lebih kecil lagi seperti mesin, roda, setir, rantai, dll. Motor adalah sebagai object yang terbentuk
dari object-object yang lebih kecil saling berhubungan, berinteraksi, berkomunikasi dan saling
mengirim pesan kepada object-object yang lainnya. Begitupula dengan program, sebuah object yang
besar dibentuk dari beberapa object yang lebih kecil, object-object itu saling berkomunikasi, dan
saling berkirim pesan kepada object yang lain.
Sederhananya, pada OOP fungsi dan Variabel dibungkus dalam sebuah object atau class
yang dapat saling berinteraksi, sehingga membentuk sebuah program. Pemrograman beroirientasi
object memiliki beberapa kaunggulan dianataranya:
• OOP lebih cepat dan lebih mudah untuk dieksekusi
• OOP menyediakan struktur yang jelas untuk program-program
• OOP mencegah terjadinya pengetikan perintah atau fungsi yang berulang sehingga memudahkan
programmer untuk mengatur, memodifikasi dan mendebug.
• OOP memungkinkan kita untuk membuat aplikasi yang dapat digunakan kembali secara penuh
dengan kode yang lebih sedikit dan waktu pengembangan yang lebih singkat.

B. Menginstall IDE Java


Terdapat beberapa jenis IDE yang dapat digunakan untuk menjalankan perintah dengan
bahasa Java, salah satunya adalah Netbeans. Adapun langkah menginstal adalah sebagai berikut:
1. Pastikan bahwa koneksi internet anda stabil dan lancar agar tidak akan mengganggu proses
download installer netbeans. IDE Netbeans dapat anda download pada link ini
https://netbeans.apache.org/download/index.html.
2. Pilih jenis Netbeans yang akan diinstal. Pilih Apache Netbeans 11 feature update 3

212
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

3. Cari file download netbeans tersebut, dan klik 2 kali pada file installer Netbeans.
4. Setelah itu, akan muncul tampilan install Java SE Development Kit, klik Next

5. Anda akan diminta untuk menyetujui lisence agreement, pilih pilihan I accept the terms …, Klik
Next

213
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

6. Kemudian sesuaikan lokasi penyimpanan dari JDK dan Netbeans IDE pada perangkat anda.
Bebas menggunakan direktori yang anda inginkan, setelah sudah ditetapkan direktorinya, klik
Next
7. Kemudian akan muncul ringkasan dari apa saja yang akan diinstall, klik Install.

8. Tunggu hingga proses installasi selesai dan muncul pesan bahwa proses installasi berhasil,
kemudian klik finish

C. Pengenalan Java
1. Membuat project baru pada Netbeans
• Pilih File>New Project.

214
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

• Setelah muncul jendela New Project, pilih Java with gradle pada Categories dan Java
Application pada Projects, kemudian klik Next.

• Kemudian beri nama project sesuai yang diinginkan (pada praktikum ini nama package
diberi nama JavaFundamentalI) dan klik Finish.

• Jika terdapat permintaan untuk mendownload plugin dan sejenisnya, sebaiknya download
plugin tersebut.
• Jika project berhasil dibuat maka akan muncul halaman seperti ini dengan main class default
bernama Main.java

215
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

2. Struktur program pada Java


Seperti yang telah dijelaskan bahwa Java adalah bahasa pemrograman berbasis OOP, maka
pada struktur pemrogramannya kita akan banyak menjumpai class.

Praktikum 6.1. Pengenalan Java


1. Buatlah sebuah project baru pada Netbeans dengan nama
JavaFundamentalI.
2. Pada method main() di dalam class Main tambahkan kode berikut:

System.out.println("Hallo Covid-19!");

3. Kemudian jalankan atau tekan F6.


4. Maka akan tampil outuput sebagai berikut:

Berikut adalah screenshot source code lengkap setelah anda melakukan langkah ke-2 pada praktikum
6.1.

Gambar 6.1. Screenshot Main.java praktikum 6.1.

216
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

Pada gambar di atas pada baris 1 package merupakan sebuah tempat yang berisi kumpulan
class-class. Nama package pada contoh gambar di atas adalah JavaFundamentalI. Baris ini
memberikan informasi bahwa class Main.java berada pada package yang dimaksud.
Pada baris 2 didefenisikan class Main yang bersifat public. Class berisi sekumpulan perintah
yang akan dieksekusi. Nama class dapat diganti namun nama file juga harus diganti dengan nama
yang sama. Area class Main berada di dalam kurung kurawalnya “{}” dalam hal ini berarti jika
melihat contoh di atas, area class Main dimulai pada baris 3 hingga 10.
Pada baris 5 merupakan main method. Setiap main class wajib hukumnya memiliki main
method sebab class dan method inilah yang akan dieksekusi pertama kali saat program dijalankan.
Fungsi main() adalah fungsi utama dalam program Java. Semua kode yang kita tulis di dalamnya,
akan langsung dieksekusi.
Pada baris 7 adalah perintah untuk menampilkan string “Hallo Covid-19”. System dalah
sebuah class, out adalah sebuah variable, dan println() adalah sebuah method. Out adalh static
member dari class System dan merupakan turunan dari java.io.PrintStream. println adalah method
dari java.io.PrintStream.

Beri centang di sini! Pernyataan


Saya telah mengerjakan praktikum 6.1 dengan sungguh-sungguh,
membaca serta memahami setiap penjelasan yang ada mengenai
praktikum tersebut.

3. Variabel, tipe data, dan operator pada Java


Samal halnya dengan bahasa pemrogrman C/C++, setiap variable pada Java harus terlebih
dahulu dideklarasikan tipe datanya. Adapun tipe data dasar pada Java adalah sebagai berikut:

Tabel 6.1. Tipe data


Tipe Data Ukuran Penjelasan
byte 1 byte Dapat menampung nilai dari -128 hingga 127
short 2 bytes Dapat menampung nilai dari -32,768 hingga 32,767
int 4 bytes Dapat menampung nilai dari -2,147,483,648 hingga 2,147,483,647
long 8 bytes Dapat menampung nilai dari -9,223,372,036,854,775,808 hingga
9,223,372,036,854,775,807. Pada tipe ini, akhir dari nilai harus
menyertakan “L”

217
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

float 4 bytes Menampung nilai pecahan. Cukup untuk menampung 6 hingga 7


digit decimal. Tipe ini dapat menampung nilai dari 3.4e−038 hingga
3.4e+038. Pada tipe ini, nilai harus diakhiri dengan “f”.
double 8 bytes Menampung nilai pecahan. Cukup untuk menampung 15 digit
decimal. Tipe ini dapat menampung nilai dari 1.7e−308 hingga
1.7e+308. Pada tipe ini, nilai harus diakhiri dengan “d”.
boolean 1 bit Menyimpan nilai true atau false
char 2 bytes Menyimpan sebuah nilai character atau nilai ASCII. Nilai karakter
harus diapit dengan petik satu.
String - Tipe data String digunakan untuk menampung deretan karakter.
Nilai string harus diapit dengan petik dua.

Selain tipe data, pada bahasa pemrograman Java juga mengenal operator. Terdapat berbagai
macam operator yang dpat digunakan untuk membangun sebuah program, berikut jenis operator
pada Java:

Tabel 6.2. Operator aritmatika


Operator Nama Penjelasan Contoh
+ Penjumlahan Menjumlahkan dua buah nilai x+y
- Pengurangan Mengurangkan sebuah nilai dengan nilai yang lain x-y
* Perkalian Mengalikan dua nilai x*y
/ Pembagian Membagi sebuah nilai dengan nilai lainnya x/y
% Modulus Mengembalikan sisa hasil bagi x%y
++ Increment Menambah isi suatu variable dengan satu ++x
-- Decrement Mengurangi isi suatu variable dengan 1 --x

Tabel 6.3. Operator penugasan


Operator Contoh Sama dengan
= x=5 x=5
+= x += 3 x=x+3
-= x -= 3 x=x-3
*= x *= 3 x=x*3
/= x /= 3 x=x/3
%= x %= 3 x=x%3

218
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

&= x &= 3 x=x&3


|= x |= 3 x=x|3
^= x ^= 3 x=x^3
>>= x >>= 3 x = x >> 3
<<= x <<= 3 x = x << 3

Tabel 6.4. Operator perbandingan


Operator Nama Contoh
== Sama dengan x == y
!= Tidak sama dengan x != y
> Lebih besar dari x>y
< Lebih kecil dari x<y
>= Lebih besar atau sama dengan x >= y
<= Lebih kecil atau sama dengan x <= y

Tabel 6.5. Operator logika


Operator Nama Penjelasan Contoh
&& Logical and Mengembalikan nilai benar jika x < 5 && x < 10
kedua statement benar
|| Logical or Mengembalikan nilai benar jika x < 5 || x < 4
salah satu statement benar
! Logical not Membalikkan hasil, mengembalikan !(x < 5 && x < 10)
nilai false jika hasil true

Praktikum 6.2. Tipe data


1. Modifikasi project JavaFundamentalI.
2. Pada method main di dalam class Main tambahkan kode berikut:
package JavaFundamentalI;

public class Main {


public static void main(String[] args) {
byte myNumbyte = 100;
short myNumshort = 5000;

219
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

int myNumint = 100000;


long myNumlong = 15000000000L;
float myNumfloat = 5.75f;
double myNumdouble = 19.99d;

System.out.println(myNumbyte);
System.out.println(myNumshort);
System.out.println(myNumint);
System.out.println(myNumlong);
System.out.println(myNumfloat);
System.out.println(myNumdouble);
}
}
3. Kemudian jalankan atau tekan F6.
4. Maka akan muncuk output sebagai berikut:

Berikut adalah gambar source code lengkap setelah anda melakukan langkah ke-2 pada praktikum
6.2.

220
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

Gambar 6.2. Screenshot Main.java praktikum 6.2.

Pada gambar di atas, pada baris 6 - 11 didekalarasikan variable dengan tipe data berbeda.
Pada baris 6 terdapat pendeklarasian variable dengan tipe data byte. Pada baris 7 terdapat
pendeklarasian variable dengan tipe data short. Pada baris 8 terdapat pendeklarasian variable dengan
tipe data int. Pada baris 9 terdapat pendeklarasian variable dengan tipe data long. Pada
pendeklarasian tipe data long nilai yang akan disimpan pada variable yang berkaitan diakhiri dengan
huruf ‘L’. Pada baris 10 terdapat pendeklarasian variable dengan tipe data float. Pada pendeklarasian
tipe data float nilai yang akan disimpan pada variable yang berkaitan diakhiri dengan huruf ‘f’. Pada
baris 11 terdapat pendeklarasian variable dengan tipe data double. Pada pendeklarasian tipe data
double nilai yang akan disimpan pada variable yang berkaitan diakhiri dengan huruf ‘d’. Selanjutnya
perintah pada baris 13-18 adalah untuk menampilkan isi dari setiap variable.

Beri centang di sini! Pernyataan


Saya telah mengerjakan praktikum 6.2 dengan sungguh-sungguh,
membaca serta memahami setiap penjelasan yang ada mengenai
praktikum tersebut.

Praktikum 6.3. Operasi matematika


1. Modifikasi project JavaFundamentalI.
2. Pada method main() di dalam class Main tambahkan kode berikut:
package JavaFundamentalI;

public class Main {

221
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

public static void main(String[] args) {


int a, b, c;
a=10;
b=20;
c=a+b;

System.out.println(c);
}
}

3. Kemudian jalankan atau tekan F6.


4. Maka akan muncuk output sebagai berikut:

Gambar 6.3. Screenshot Main.java praktikum 6.3.

222
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

Pada gambar 6.3 ditunjukkan screenshot dari kode praktikum 6.3. pada praktikum ini anda
telah membuat sebuah program penjumlahan sederhana dengan memanfaatkan operator aritmatika.
Seperti yang kita lihat, pada baris 5 dideklarasikan 3 buah variabel dengan tipe data integer yakni
variabel a, b, dan c. hal tersebut berarti bahwa variabel a, b, dan c hanya dpat menampung nilai
bertipe integer atau bilangan bulat. Kemudian pada baris 6 dilakukan proses assignment atau proses
menyimpan nilai ke dalam variabel dalam hal ini variabel a diisi dengan nilai 10. Begitupun pada
baris 7 variabel b diisi dengan nilai 20. Selanjutnya pada baris 8 variabel c digunakan untuk
menampung hasil penjumlahan antara a dan b. Terakhir, pada baris 10 nilai hasil penjumlahan a
dan b yang disimpan pada variabel c di tampilkan dengan menggunakan fungsi println().

Beri centang di sini! Pernyataan


Saya telah mengerjakan praktikum 6.3 dengan sungguh-sungguh,
membaca serta memahami setiap penjelasan yang ada mengenai
praktikum tersebut.

4. Percabangan pada Java


Java juga mendukung percabangan atau yang lebih dikenal dengan istilah seleksi kondisi.
Java sendiri mendukung kondisi logis yang biasa kita gunakan pada matematika seperti:
• Lebih kecil dari: a < b
• Lebih kecil dari atau sama dengan: a <= b
• Lebih besar dari: a > b
• Lebih besar dari atau sama dengan: a >= b
• Sama dengan: a == b
• Tidak sama dengan: a != b
Kita dapat menggunakan kondisi logis tersebut di atas sesuai kebutuhan dan aksi apa yang
diinginkan untuk setiap kondisi yang berbeda. Java sendiri memiliki statement kondisi sebagai
berikut:
• Gunakan if untuk mengeksekusi blok program tertentu jika kondisi bernilai benar.
• Gunakan else untuk mengeksekusi blok program tertentu jika kondisi yang sama bernilai salah.
• Gunakan else if untuk menentukan kondisi baru untuk diuji jika kondisi pertama bernilai salah.
• Gunakan switch untuk menentukan banyak alternative blok program yang dapat dieksekusi.

Sintaks 6.1. if
if (kondisi) {

223
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

// blok kode yang dieksekusi jika kondisi bernilai benar


}

Sintaks 6.2. if else


if (kondisi) {
// blok kode yang dieksekusi jika kondisi bernilai benar
} else {
// blok kode yang dieksekusi jika kondisi bernilai salah
}

Sintaks 6.3. else if


if (kondisi1) {
// blok kode yang dieksekusi jika kondisi1 bernilai benar
} else if (kondisi2) {
// blok kode yang dieksekusi jika kondisi1 bernilai salah
dan kondisi2 bernilai benar
} else {
// blok kode yang dieksekusi jika kondisi1 bernilai salah
dan kondisi2 bernilai salah juga
}

Praktikum 6.4. Seleksi kondisi


1. Modifikasi project JavaFundamentalI.
2. Pada method main() di dalam class Main tambahkan kode berikut:
package JavaFundamentalI;

public class Main {


public static void main(String[] args) {
int waktu = 22;
if (waktu < 10) {
System.out.println("Selamat pagi.");
} else if (waktu < 20) {
System.out.println("Selamat siang.");
} else {

224
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

System.out.println("Selamat malam.");
}
}
}

3. Kemudian jalankan atau tekan F6.


4. Maka akan muncul output sebagai berikut:

Berikut adalah gambar source code lengkap setelah anda melakukan langkah ke-2 pada
praktikum 6.4.

Gambar 6.4. Screenshot Main.java praktikum 6.4.

Pada gambar dapat dilihat bahwa pada baris 4 dideklarasikan sebuah variable bernama
“waktu” dengan tipe data integer. Variable tersebut diisi dengan nilai 22. Kemudian baris 5-11
merupakan blok perintah seleksi kondisi, dimana pada baris 5 terdapat kondisi “waktu<10”. Jika
melihat isi dari variable waktu maka kondisi ini akan mengembalikan nilai false sehingga perintah
pada baris 6 tidak akan dieksekusi. Begitu pula pada kondisi berikutnya di baris 7. Karena kondisi

225
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

pertama bernilai false maka sistem akan melanjutkan pengujian pada kondisi kedua ini. Namun,
kondisi “waktu<20” ini juga akan bernilai false sebab waktu berisi nilai 22. Sehingga sistem akan
mengeksekusi perintah yang berada dibagian else. Perintah pada bagian else di baris 10 dieksekusi
karena dari dua kondisi yang ada semuanya berilai false.

Beri centang di sini! Pernyataan


Saya telah mengerjakan praktikum 6.4 dengan sungguh-sungguh,
membaca serta memahami setiap penjelasan yang ada mengenai
praktikum tersebut.

5. Perulangan pada Java


Terdapat beberapa jenis perulangan pada Java yaitu:
• For loop
• For each loop
• While loop
• Do/while loop
Statement perulangan diperlukan dalam pemrograman untuk menghindari pengeksekusian
statement yang sama berulang kali. Jika tanpa menggunakan perulangan maka kita akan
mengetikkan perintah yang sama berulang kali. Dengan menggunakan perulangan maka baris
perintah dapat direduksi.
Perulangan dapat mengeksekusi blok kode sepanjang kondisi yang ditentukan terpenuhi.
Perulangan berguna karena menghemat waktu, mengurangi kesalahan, dan membuat kode lebih
mudah dibaca.

Sintaks 6.4. for loop

for (statement 1; statement 2; statement 3) {


// blok kode yang akan dieksekusi
}

Statement 1 dieksekusi sekali sebelum blok kode dieksekusi. Statement 2 mendefenisikan


kondisi untuk mengeksekusi blok kode. Statement 3 diekseksui setiap perulangan setelah blok kode
dieksekusi.

226
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

Praktikum 6.5. For loop


1. Modifikasi project JavaFundamentalI.
2. Pada method main() di dalam class Main tambahkan kode berikut:
package JavaFundamentalI;

public class Main {


public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
}
}
3. Kemudian jalankan atau tekan F6.
4. Maka akan muncul output sebagai berikut:

Berikut adalah screenshot praktikum 6.5 yang telah anda kerjakan.

Gambar 6.5. Screenshot Main.java praktikum 6.5.

227
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

Pada gambar 6.5, dapat dilihat bahwa pada baris 4-6 merupakan bagian dari statement
perulangan for. Satatement 1 “int i;” berisi sebua variable bernama “i” yang bertipe integer diisi
dengan nilai awal 0. Kemudian statement II “i<5” yang merupakan kondisi atau syarat bisa atau
tidaknya blok kode dieksekusi. Pada program diatas kondisinya adalah “i<5” yang berarti selama
nilai “i” masih lebih kecil dari pada 5 maka perintah baris 5 dieksekusi yang merupakan perintah
untuk menampilkan isi dari variable i. kemudian statement III “i++” berisi increment terhadap
variable i. i++ berarti isi dari variable “I” ditambah dengan 1 dan hasil penjumlahannya disimpan
kembali ke variable i. Bagian statement III ini dieksekusi setelah blok kode di dalam area kurung
kurawal for {} dieksekusi.

Sintaks 6.5. for each

for (tipe data nama variable : nama array) {


// blok kode yang akan dieksekusi
}

Sintaks 6.6 while

while (kondisi) {
// blok kode yang akan dieksekusi
}

Sintaks 6.7. do while

do {
// blok kode yang akan dieksekusi
}
while (kondisi)

Beri centang di sini! Pernyataan


Saya telah mengerjakan praktikum 6.5 dengan sungguh-sungguh,
membaca serta memahami setiap penjelasan yang ada mengenai
praktikum tersebut.

228
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

6. Class dan Object pada Java


Berbicara mengenai OOP maka kita tidak akan lepas dari konsep class dan object karena
class dan objet adalah aspek utama dalam OOP. Perhatikan ilustrasi berikut:

Class Object
Pisang
Buah Mangga
Rambutan

Contoh lain
Class Object
Asus
Laptop HP
Lenovo

Berdasarkan ilustrasi di atas dapat disimpulkan bahwa class adalah “template” dari sebuah
object dan sebuah object adalah hasil cetakan dari class. Ketika sebuah object dibuat maka object
tersebut mewarisi semua variable dan method yang ada pada class pembentuknya.

Sintaks 6.8. membuat object dari class

nama_class nama_object = new nama_class();

Keterangan sintaks:
• nama_class: pada bagian ini diisi dengan nama class yang akan anda buat objectnya.
• nama_object: pada bagian ini diisi dengan nama object dari class yang diinginkan. Nama class
bebas asal sesuai dengan aturan pemberian nama.
• new: merupakan keyword pada sintaks pendeklarasian object
• nama_class(): merupakan nama class yang sama dengan nama_class namun diikuti dengan ().

Praktikum 6.6. Class dengan satu object


1. Modifikasi project JavaFundamentalI.
2. Pada class Main hapus kode sebelumnya yang sudah ada lalu
ketikkan kode berikut:
package JavaFundamentalI;

229
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

public class Main {


int x = 5;
public static void main(String[] args) {
Main classbaru = new Main();
System.out.println(classbaru.x);
}
}

3. Kemudian jalankan atau tekan F6.


4. Maka akan muncul output sebagai berikut:

Berikut adalah gambar source code lengkap setelah anda melakukan langkah ke-2 dan ke-3
pada praktikum 6.6.

Gambar 6.6. Screenshot Main.java praktikum 6.6.

Pada gambar dapat dilihat bahwa pada baris 3 kita telah mendeklarasikan sebuah variable
bernama “x” dengan tipe data integer. Variable tersebut diisi dengan nilai 5. Jika diamati, perintah
pendeklarasian variable ini dilakukan di luar area method main, namun masih berada di dalam class

230
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

Main. Kemudian pada baris 5, terdapat statement membuat sebuah object dari class Main. Object
tersebut bernama “classbaru” yang merupakan cetakan dari class Main, sehingga object classbaru
akan mewarisi semua method dan variable member dari class Main.
Pada baris 6, diberikan sebuah baris perintah untuk mencetak “classbaru.x”. Statement
“classbaru.x” berarti bahwa variable x yang berada di dalam object classbaru. Object classbaru
memiliki variable member x karena mewarisi class Main.

Beri centang di sini! Pernyataan


Saya telah mengerjakan praktikum 6.6 dengan sungguh-sungguh,
membaca serta memahami setiap penjelasan yang ada mengenai
praktikum tersebut.

Praktikum 6.7. Class dengan lebih dari satu object


1. Modifikasi project JavaFundamentalI.
2. Pada method main di dalam class Main tambahkan kode berikut:
package JavaFundamentalI;

public class Main {


int x = 5;
public static void main(String[] args) {
Main classbaru1 = new Main();
Main classbaru2 = new Main();
System.out.println(classbaru1.x);
System.out.println(classbaru2.x);
}
}
3. Kemudian jalankan atau tekan F6.
4. Maka akan muncul output sebagai berikut:

231
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

Gambar 6.7. Screenshot Main.java praktikum 6.7.

Pada gambar 6.7 dpat kita lihat source code lengkap dari praktikum 6.7. pada praktikum
ini anda telah membuat 2 object dari sebuah class. Pada baris 5 kita mendeklarasikan object
dengan nama “classbaru1” dari class Main. Pada baris 6 kita mendeklarasikan object dengan nama
“classbaru2” dari class Main juga. Dapat kita lihat pada bagian output, hasil yang dikeluarkan
adalah sama yaitu 5. Hal tersebut terjadi karena kedua object dibentuk dari class yang sama dengan
mengakses variabel member yang sama menggunakan perintah baris 7 dan 8.

Beri centang di sini! Pernyataan


Saya telah mengerjakan praktikum 6.7 dengan sungguh-sungguh,
membaca serta memahami setiap penjelasan yang ada mengenai
praktikum tersebut.

Praktikum 6.8. Multiple class dan multiple object


1. Modifikasi project JavaFundamentalI.
2. Pada method main di dalam class Main tambahkan kode berikut:

232
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

3. Kemudian tambahkan file class baru dengan cara klik kanan


package class>new>Java Class

4. Beri nama class baru dengan nama “classbaru”

5. Pada classbaru.java tambahkan kode berikut:

233
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

6. Kemudian jalankan atau tekan F6.


7. Maka akan muncul output sebagai berikut:

Gambar 6.8. Screenshot Main.java dan classbaru.java praktikum 6.8.

Pada praktikum 6.8 di atas, kita telah menambahkan sebuah file class baru bernama
“classbaru.java”. Sehingga dalam package JavaFundamentalI terdapat 2 file class yaitu Main.java
dan classbaru.java. pada class Main terdapat method main() sehingga ketika program dieksekusi,
yang pertama kali akan dieksekusi adalah pada bagian tersebut. Pada class Main di baris 3
dideklarasikan sebuah variable “x” bertipe integer dengan nilai 10. Pada baris 5 dibentuk sebuah
object bernama “classdalam” dimana object ini mewarisi class Main. Sehingga ketika nilai variable
x pada object classdalam ditampilkan pada baris 7, nilai yang ditampilkan adalah 10.
Adapun object “classsebelah” yang dibentuk pada baris 6 adalah mewarisi class classbaru
yang berada pada file classbaru.java. classbaru memiliki 2 variabel yang dideklarasikan pada baris
4 dan 5 pada classbaru.java, yakni x dan y yang bertipe integer dan masing masing menampung nilai
5 dan 20. Ketika object classsebelah dibentuk dari class classbaru, maka secara otomatis object
classsebelah mewarisi semua “sifat” dari classbaru. Sehingga, ketika nilai x dan y dari object
classsebelah ditampilkan menggunakan baris perintah baris 8 dan 9, nilai yang ditampilkan sama
dengan nilai yang ada pada classbaru.

234
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

Beri centang di sini! Pernyataan


Saya telah mengerjakan praktikum 6.8 dengan sungguh-sungguh,
membaca serta memahami setiap penjelasan yang ada mengenai
praktikum tersebut.

7. Java method
Sebuah method adalah sebuah blok kode yang hanya akan berjalan atau dieksekusi ketika
method ini dipanggil. Anda dapat mengirim data yang disebut parameter kedalama sebuah method.
Method digunakan untuk melakukan aksi tertentu yang dikenal dengan sebutan fungsi. Method
penting untuk digunakan agar kita dapat menggunakan kembali kode yang telah dibuat. Kita cukup
membuat sebuah method dan kita dapat menggunakannya berulang kali.
Sebuah method harus dideklarasikan di dalam sebuah class. Method didefenisikan dengan
nama method diikuti dengan buka dan tutup kurung “()”. Pada Java terdapat method bawaan seperti
“System.out.println()” namun anda bisa mendefenisikan sendiri method anda. Adapun sintaks
pendeklarasian method secara umum adalah sebagai berikut:

Sintaks 6.9. Deklarasi method

Modifier tipe_nilai_balik nama method(){


// blok kode yang akan dieksekusi
}

Contoh deklarasi method

public class MyClass {


static void myMethod() {
// blok kode yang akan dieksekusi
}
}

Berdasarkan sintaks dan contoh yang telah diberikan dapat diketahui bahwa sebuah method terdiri
atas:
• Modifier (static / non static): method dengan keyword static berarti pertanda bahwa method
tersebut berada di dalam class tersebut namun bukan merupakan turunan dari class tersebut.
Method ini dapat dipanggil tanpa turunan atau object dari class tersebut. Sedangkan metode

235
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

non static dalam pemanggilannya harus melalui object class yang sudah dibentuk terlebih
dahulu. Untuk memanggil non static method, kita perlu menuliskan nama dari method dan
diikuti dengan nama object class.
• Tipe_nilai_balik: merupakan jenis nilai balik yang dikembalikan. Jika tidak ada nilai balik
dari method tersebut maka cukup memberikan void.
• Nama_method: merupakan nama dari method yang dibangun. nama yang diberikan
sebaiknya merupakan gambaran dari isi method.

Praktikum 6.9. Static method


1. Modifikasi project JavaFundamentalI.
2. Pada class Main.java tambahkan kode berikut:

package JavaFundamentalI;

class aritmatika {
public static int penjumlahan(int a, int b)
{
return a + b;
}
}

public class Main {


public static void main(String[] args) {
int x = 5, y = 6;
int s = aritmatika.penjumlahan(x, y);
System.out.print("hasil penjumlahan = " + s);
}
}

3. Kemudian jalankan atau tekan F6.


4. Maka akan muncul output sebagai berikut:

236
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

Gambar 6.9. Screenshot Main.java dan classbaru.java praktikum 6.9.

Pada praktikum 6.9 anda telah membuat sebuah program penjumlahan dengan menggunakan
static method. Pada program tersebut terdapat dua class, yaknik class aritmatika dan class Main.
Method utama berada pada class Main. Untuk class aritmatika sendiri area blok kodenya dimulai
dari baris 3 hingga 8. Di dalam class aritmatika, pada baris 4 hingga 7, terdapat sebuah method
static bernama “penjumlahan” yang bersifata public (dapat diakses dari manapun baik dalam maupun
luar class) dengan tipe nilai balik adalah integer. Pada method ini terdapat dua parameter yaitu “a”
dan “b” yang masing masing bertipe data integer. Kemudian didalam class aritmatika method
penjumlahan() ini terjadi proses penjumlahan (baris 6) antara isi variable a dan b yang langsung
dikembalikan (return) ke perintah pemanggilnya di class Main baris 13.
Pada class Main.dengan areanya dari baris 10 hingga 16 terdiri atas sebuah method bernama
main bersifat public dan static namun tidak memiliki nilai balik (void). Pada method ini dilakukan
deklarasi variable pada baris 12 yaitu “x” dan “y” yang sama sama bertipe integer dimana x bernilai

237
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

5 dan y bernilai 6. Kemudian pada baris 13 dilakukan deklarasi variable “s” yang bertipe data
integer.
Nilai variable s diperoleh dari nilai balik hasil pemanggilan method penjumlahan() yang
berada dalam class aritmatika. Pemanggilan method ini disertai pengiriman nilai parameter yaitu x
dan y yang kemudian nilai x dan y akan diterima oleh variable a dan b secara berurut pada method
penjumlahan() yang berada di class aritmatika. Variable s dideklarasikan dengan tipe data integer
dikarenakan nilai balik yang diterima hasilnya berupa integer juga. Isi variable s kemudian
ditampilkan menggunakan perintah pada baris 14. Jika anda MENGHAPUS keyword static pada
method penjumlahan di class aritmatika, maka compiler akan menampilkan pesan error.
Pada praktikum di atas kita telah dapat mengetahui bahwa method static dapat diakses tanpa
perlu membentuk objectnya terlebih dahulu.

Beri centang di sini! Pernyataan


Saya telah mengerjakan praktikum 6.9 dengan sungguh-sungguh,
membaca serta memahami setiap penjelasan yang ada mengenai
praktikum tersebut.

Praktikum 6.10. Non-static method


1. Modifikasi project JavaFundamentalI.
2. Pada class Main.java tambahkan kode berikut:

package JavaFundamentalI;

class aritmatika {
public int penjumlahan(int a, int b)
{
return a + b;
}
}

public class Main {


public static void main(String[] args) {
int x = 5, y = 6;
aritmatika object1 = new aritmatika();
int s = object1.penjumlahan(x, y);

238
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

System.out.print("hasil penjumlahan = " + s);


}
}

3. Kemudian jalankan atau tekan F6.


4. Maka akan muncul output sebagai berikut:

Gambar 6.10. Screenshot Main.java praktikum 6.10.

Pada praktikum 6.10 anda telah membuat sebuah program penjumlahan dengan
menggunakan non-static method. Program tersebut pada dasrnya sama dengan program pada
praktikum 6.9, yang membedakan adalah metohod yang digunakan pada praktikum 6.9 adalah
method static. Disini dapat kita lihat bahwa pada pendeklarasian method penjumlahan() pada baris
4 tidak disertai dengan modifier static. Hal tersebut berarti bahwa untuk mengakses member di dalam

239
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

method tersebut tidak dapat dilakukan secara langsung namun harus diakses melalui object yang
dibentuk. Artinya sebelum mengakses membernya, maka sebuah object harus dibangun dengan
mewarisi class di mana method tersebut berada. Hal tersebut dapat kita lihat pada method main di
class Main pada baris 13. Pada baris tersebut dideklarasikan sebuah object bernama “object1” yang
mewarisi semua “sifat” dari class pembentuknya dalam hal ini adalah class aritmatika. Sehingga
ketika method penjumlahan() dipanggil maka harus disertakan nama objectnya seperti ditunjukkan
pada statement baris 14.

Beri centang di sini! Pernyataan


Saya telah mengerjakan praktikum 6.10 dengan sungguh-sungguh,
membaca serta memahami setiap penjelasan yang ada mengenai
praktikum tersebut.

8. Method Overloading
Pada Java dikenal juga istilah overloading. Overloading pada Java berarti bahwa suatu
method dapat memiliki nama method yang sama namun dengan parameter yang berbeda.

Praktikum 6.11. Method overloading


1. Modifikasi project JavaFundamentalI.
2. Pada class Main.java tambahkan kode berikut:

package JavaFundamentalI;

class aritmatika {
static int penjumlahan(int a, int b)
{
return a + b;
}

static double penjumlahan(double a, double b)


{
return a + b;
}
}

public class Main {

240
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

public static void main(String[] args) {


int hasil1 = aritmatika.penjumlahan(5, 6);
double hasil2 = aritmatika.penjumlahan(5.5, 6.0);
System.out.println("hasil penjumlahan int = " + hasil1);
System.out.println("hasil penjumlahan double = " + hasil2);
}
}
3. Kemudian jalankan atau tekan F6.
4. Maka akan muncul output sebagai berikut:

Gambar 6.11. Screenshot Main.java praktikum 6.11.

Pada praktikum 6.11 anda telah menerapkan method overloading. Dapat anda perhatikan
pada class aritmatika terdapat dua buah method dengan nama yang sama pada baris 4 dan baris 9.
Perbedaan dari kedua method ini adalah tipe nilai balik dan parameternya. Pada method baris 4 tipe
nilai baliknya adalah integer dengan dua buah parameter bertipe integer yakni a dan b. pada method

241
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

baris 9 tipe nilai baliknya adalah double dengan parameter a dan b yang bertipe double. Overloading
method baik digunakan ketika kita akan memproses data dengan proses yang sama sehingga kita
tidak perlu membuat method dengan nama yang berbeda tetapi prosesnya sama.
Pada saat method tersebut dipanggil maka compiler dapat membedakan method mana yang
dimaksud dengan melihat parameter atupun nilai baliknya. Hal ini ditunjukkan pada perintah
pemanggilan di baris 17 dan 18. Pada perintah tersebut dapat kita lihat bahwa nama method yang
dipanggil sama namun compiler tetap dapat membedakan method yang dimaksud.

Beri centang di sini! Pernyataan


Saya telah mengerjakan praktikum 6.11 dengan sungguh-sungguh,
membaca serta memahami setiap penjelasan yang ada mengenai
praktikum tersebut.

9. Java Modifier
Sampai pada saat ini anda pasti telah familiar dengan keyword “public”. Public sendiri
merupakan access modifier yang berarti bahwa kita mengatur access level untuk class, atribut,
method dan constructor.
Terdapat dua jenis modifier yaitu:
• Access Modifier, mengontrol level akses
• Non-Access modifiers, tidak mengontrol level akses namun menyediakan fungsi lain.

a. Access modifier
Untuk class, kita dapat menggunakan public atau default.

Tabel 6.6. Access modifier untuk class


Modifier Penjelasan
public Class dapar diakses melalui class lain manapun.
default Class hanya dapat diakses oleh class yang berada pada package yang sama. Ini
digunakan ketika kita tidak menentukan modifier.

Untuk attribute, method, dan constructor dapat menggunakan public, private, protected, default.

Tabel 6.7. Access modifier untuk attribute.


Modifier Penjelasan
public Kode dapat diakses darai semua class

242
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

private Kode hanya dapat diakses di dalam class yang dideklarasikan


default Kode hanya dapat diakses pada package yang sama. Ini digunakan ketika kita
tidak menentukan modifier.
protected Kode dapat diakses dari package dan subclass yang sama

b. Non-access modifier
Untuk class, kita dapat menggunakan final atau abstract.

Tabel 6.8. Non-access modifier untuk class


Modifier Penjelasan
final Class tidak dapat diwarisi oleh class lain
abstract Class tidak dapat digunakan untuk membuat object. Untuk mengakses class
abstract maka harus diwarisi oleh class lain.

Untuk attribute dan method, kita dapat menggunakan final, static, transient, synchronized, volatile,
atau abstract.

Tabel 6.9. Non-access modifier untuk attribute dan method


Modifier Penjelasan
final Atribut dan method tidak dapat diganti atau dimodifikasi
static Attribute dan method adalah milik class bukan object. Diakses langsung melalui
class bukan object.
abstract Hanya dapat digunakan dalam class abstract dan hanya dapat digunakan pada
method. Method ini tidak memiliki tubuh, sebagai contoh abstract void run();.
Tubuhnya disediakan oleh subclass (diwarisi dari).
transient Attribute dan method dilewati saat membuat serialisasi object yang memuatnya.
synchronized Method hanya dapat diakses oleh sebuah thread pada satu waktu
volatile Nilai dari sebuah attribute selalu dibaca dari main memory

Praktikum 6.12. Attribute Non-access modifier-final


1. Modifikasi project JavaFundamentalI.
2. Pada class Main.java tambahkan kode berikut:

package JavaFundamentalI;
public class Main {

243
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

final int x =10;


final double PI=3.14;

public static void main(String[] args) {


Main object1 = new Main();
object1.x=20;
object1.PI=4.3;
System.out.println(object1.x);
System.out.println(object1.PI);
}
}
3. Kemudian jalankan atau tekan F6.
4. Maka akan muncul output sebagai berikut:

Gambar 6.12. Screenshot Main.java praktikum 6.12.

244
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

Pada praktikum 6.12 anda telah mencoba menggunakan modifier final. Dapat dilihat pada
baris 4 dan 5 variabel “x” dan “PI” diberi non-access modifier “final”. Hal tersebut mengakibatkan
isi dari variable x dan PI tidak dapat digantikan lagi dengan nilai apapun. Hal tersebut dibuktikan
dengan pesan error yang muncul pada baris 9 dan 10 dimana pada baris tersebut terdapat perintah
untuk memasukkan nilai ke dalam variable x dan PI yang berada pada object object1. Jika anda
menghapus keyword final maka program akan berjalan tanpa error.

Beri centang di sini! Pernyataan


Saya telah mengerjakan praktikum 6.6 dengan sungguh-sungguh,
membaca serta memahami setiap penjelasan yang ada mengenai
praktikum tersebut.

Praktikum 6.13. Class Non-access modifier- final


1. Modifikasi project JavaFundamentalI.
2. Pada class Main.java tambahkan kode berikut:
package JavaFundamentalI;

final class Mahasiswa{

public Mahasiswa(){
System.out.println("Kami adalah MAHASISWA");
}
}

public class Main extends Mahasiswa {

public static void main(String[] args) {


Main obj1 = new Main();
obj1.Motto();
}

public void Motto(){


System.out.println("Kami adalah Agen Perubahan!");
}

245
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

3. Kemudian jalankan atau tekan F6.


4. Maka akan muncul output sebagai berikut:

Gambar 6.13. Screenshot Main.java praktikum 6.13.

Pada praktikum 6.13 kita sudah belajar menggunakan non-access modifier final untuk
sebuah class. Pada gambar 6.13 dapat kita lihat bahwa terdapat 2 class pada Main.java yaknik class
Main dan class Mahasiswa. Ketika anda menjalankan praktikum di atas maka output yang
dikeluarkan adalah pesan error. Hal tersebut terjadi karena pada baris 8 class Main yang meng-
extends class Mahasiswa dinyatakan error akibat class mahasiswa memiliki modifier final pada baris
2. Seperti yang sudah dijelaskan, non-access modifier final untuk class berarti bahwa class tersebut
tidak dapat diwarisi oleh class lain.
Dalam kasus ini, class Main diwarisi oleh class Mahasiswa menggunakan keyword extends.
Untuk menghilangkan error yang terjadi maka cukup menghapus modifier final pada class

246
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

Mahasiswa atau menghapus “extends Mahasiswa” pada class Main. Pembahasan mengenai
inheritance akan dibahas lebih lanjut.

Beri centang di sini! Pernyataan


Saya telah mengerjakan praktikum 6.13 dengan sungguh-sungguh,
membaca serta memahami setiap penjelasan yang ada mengenai
praktikum tersebut.

Praktikum 6.14. Access modifier-default


1. Modifikasi project JavaFundamentalI.
2. Tambahkan package baru dengan cara pada panel project>klik
kanan Source packages>new>folder

3. Kemudian beri nama package tersebut, dan klik Finish

247
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

4. Pada Packagebaru tambahkan sebuah Java class dengan cara klik


kanan package Packagebaru > new > Java class

5. Beri nama class dan klik finish

248
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

6. Maka saat ini telah terdapat 2 package yang berisi class Java

7. Pada class Main.java di package JavaFundamentalI tambahkan


kode berikut:
package JavaFundamentalI;
import Packagebaru.*;

public class Main {


public static void main(String[] args) {
Penjumlahan object1 = new Penjumlahan();
int hasil = object1.jumlah(3,4);
System.out.println(hasil);
}
}

8. Pada class Penjumlahan.java di package Packagebaru tambahkan


kode berikut:
package Packagebaru;

public class Penjumlahan {


int jumlah(int a, int b){
return a+b;

249
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

}
}

9. Kemudian jalankan atau tekan F6.


10. Maka akan muncul output sebagai berikut:

Gambar 6.14. Screenshot Main.java praktikum 6.14.

Pada praktikum 6.14 kita telah membuat program dengan dua package dan beberapa class.
Pada class Main.java kita memanggil sebuah method yang berada pada class Penjumlahan.java,
dimana kedua class ini berada pada package yang berbeda pula. Sehingga, agar dapat menggunakan
semua sumberdaya yang ada pada class Penjumlahan.java, kita perlu mengimportnya terlebih dahulu
seperti yang ada pada Main.java baris 2. Namun tentunya kita harus membuat terlebih dahulu
Penjumlahan.class sebelum memanggilnya pada class yang lain.
Pada package Packagebaru class Pejumlahan.java terdapat sebuah method bernama
“jumlah” dengan 2 parameter bertipe integer yakni “a” dan “b”. Method ini dapat anda lihat pada
baris 4 hingga 6. Method ini juga memberikan nilai balik integer ke perintah pemanggilnya. Tipe
nilai balik, nama method dan parameter dapat dilihat pada baris 4. Namun jika kita amati tidak ada
sama sekali keyword access modifier di sana sehingga dapat disimpulkan bahwa access modifier
yang berlaku pada method ini adalah “default”. Perhatikan karakteristik access modifier berikut:

250
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

Tabel 6.10. Karakteristik pengaksesasn - access modifier


Akses Default Private Protected Public
Class yang sama Ya Ya Ya Ya
Subclass package yang sama Ya Tidak Ya Ya
Package yang sama namun bukan
Ya Tidak Ya Ya
sub-class
Subclass package yang berbeda Tidak Tidak Ya Ya
Package yang berbeda dan bukan
Tidak Tidak Tidak Ya
sub-class

Sampai di sini kita sudah memahami bahwa access modifier yang berlaku untuk method
jumlah class Penjumlahan package Packagebaru adalah “default”, sehingga ketika kita akan
mengakses dari class package yang lain akan terjadi error seperti yang ditunjukkan pada output
praktikum 6.14. Adapun pesan error yang muncul adalah “error: jumlah(int,int) is not public in
Penjumlahan; cannot be accessed from outside package int hasil = object1.jumlah(3,4);”
Sehingga untuk mengataasi hal tersebut hal yang perlu dilakukan adalah mengubah access
modifier pada class jumlah menjadi “public” seperti yang akan kita lakukan pada praktikum 6.15
berikut.

Beri centang di sini! Pernyataan


Saya telah mengerjakan praktikum 6.14 dengan sungguh-sungguh,
membaca serta memahami setiap penjelasan yang ada mengenai
praktikum tersebut.

Praktikum 6.15. Access modifier-public


1. Modifikasi project JavaFundamentalI praktikum 6.14.
2. Pada method jumlah di class Penjumlahan package Packagebaru
tambahkan keyword acces modifier public.
package Packagebaru;

public class Penjumlahan {


public int jumlah(int a, int b){
return a+b;
}
}

251
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

3. Kemudian jalankan atau tekan F6.


4. Maka akan muncul output sebagai berikut:

Gambar 6.15. Screenshot Main.java praktikum 6.15.

Seperti yang kita lihat pada praktikum 6.15 setelah kita mengubah access modifier pada
method jumlah di class Penjumlahan.java package Packagebaru di baris 4, statement pemanggil
baris 9 pada calass Main.java tidak lagi menunjukkan error. Artinya method tersebut telah dapat
diakses. Perhatikan kembali tabel access modifier yang telah diberikan sebelumnya. Hal tersebut
sesuai dengan karakteristik modifier public yang telah disajikan pada tabel 6.10.

Beri centang di sini! Pernyataan


Saya telah mengerjakan praktikum 6.15 dengan sungguh-sungguh,
membaca serta memahami setiap penjelasan yang ada mengenai
praktikum tersebut.

252
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

Praktikum 6.16. Access modifier-private


1. Modifikasi project JavaFundamentalI class Main.java.
2. Pada class Main tambahkan kode berikut:
package JavaFundamentalI;

class A{
private static void tampil(){
System.out.println("ini class A");
}
}

public class Main {


private static void tampil(){
System.out.println("ini class Main");
}

public static void main(String[] args) {


Main.tampil();
A.tampil();
}
}

3. Kemudian jalankan atau tekan F6.


4. Maka akan muncul output sebagai berikut:

253
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

Gambar 6.16. Screenshot Main.java praktikum 6.16.

Pada praktikum 6.16 yang telah anda lakukan, output yang dihasilkan adalah pemberitahuan
bahwa terdapat error pada baris perintah yang ada. Pesan error yang tampil adalah “error: tampil()
has private access in A A.tampil();” error terjadi pada baris 15 dimana baris 15 adalah perintah
untuk mengakses method tampil() pada class A. ingat, kita tidak membentuk object dari class method
karena method bersifat static. Selain itu, method tampil() pada dasarnya dapat diakses tanpa
membentuk object dari classnya terlebih dahulu. Namun, akibat access modifier pada method
tampil() adalah “private” maka semua bentuk pengaksesan method dari class yang berbeda tidak
diperbolehkan. Hal tersebut yang menyebabkan error pada baris 15, karena perintah pada baris 15
berada pada class Main, class yang berbeda dari class A penampung method tampil().
Sedangkan pada baris 14 yang merupakan perintah untuk mengakses method tampil pada
class Main terlihat aman-aman saja tanpa error. Padahal method tampil() pada class Main juga
memiliki access modifier “private”. Error tidak muncul/ perintah tersebut diperbolehkan sebab
perintah pengaksesan berada pada class yang sama dengan method tampil() class Main. Lihat
kembali tabel 6.10.

Beri centang di sini! Pernyataan


Saya telah mengerjakan praktikum 6.16 dengan sungguh-sungguh,
membaca serta memahami setiap penjelasan yang ada mengenai
praktikum tersebut.

254
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

10. Java Encapsulation


Enkapsulasi (encapsulation) adalah pembungkusan data ke dalam satu unit. Pengertian lain
dari enkapsulasi adalah pelindung yang mencegah data diakses oleh kode di luar pelindung tersebut.
Lebih sedrhana lagi dapat dikatakan bahwa enkapsulasi adalah teknik yang dilakukan untuk
memastikan bahwa data yang bersifat sensitive/rahasia disembunyikan dari user.
Secara teknis dalam enkapsulasi, variable atau data suatu class disembunyikan dari class lain
dan hanya dapat diakses melalui fungsi anggota manapun selama dia dideklarasikan di dalam class
yang sama.
Seperti dalam enkapsulasi, data dari suatu class disembunyikan dari class lain menggunakan
konsep penyembunyian data yang dapat dicapai dengan menjadikan member atau method dari class
bersifat private dan class diekspos kepada pengguna akhir atau dunia tanpa memberikan rincian di
balik implementasi menggunakan konsep abstraksi. Sehingga hal ini membuat enkapsulasi juga
dikenal sebagai kombinasi penyembunyian data dan abstraksi.
2 hal yang perlu diperhatikan untuk membuat enkapsulasi adalah:
• Deklarasikan variabel / atribut class dengan modifier “private””
• Sediakan method set dan get untuk mengakses dan mengupdate nilai dari sebuah variable privat.

Seperti yang telah kita pelajari pada praktikum sebelumnya bahwa variable yang bersifat
private hanya dapat diakses pada class yang sama. Namun, kita tetap dapat mengakses variable
tersebut jika kita menggunakan method get dan set yang bersifat public. Seperti yang akan dilakukan
pada praktikum 6.17 berikut ini. Method get akan mengmbalikan nilai variabel dan method set akan
melakukan set nilai.

Praktikum 6.17. Enkapsulasi (contoh error)


1. Modifikasi project JavaFundamentalI class Main.java.
2. Pada class Main tambahkan kode berikut:
package JavaFundamentalI;

public class Main {

public static void main(String[] args) {


Orang object1 = new Orang();
object1.nama="Hasanuddin";
System.out.println(object1.nama);
}

255
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

3. Pada package yang sama, tambahkan class Orang.java lalu


ketikkan kode berikut:
package JavaFundamentalI;

public class Orang {


private String nama;

//Getter
public String getNama(){
return nama;
}

//Setter
public void setNama(String newNama){
this.nama=newNama;
}
}

4. Kemudian jalankan atau tekan F6 pada class Main.


5. Maka akan muncul output sebagai berikut:

256
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

Gambar 6.17. Screenshot class Main.java dan Orang.java praktikum 6.17.

Pada praktikum di atas kita mencoba untuk mengakses variabel “nama” pada class Orang
dari class Main. Namun, karena variabel nama bersifat private, maka pengaksesan dari luar class
tidak diperbolehkan sehingga muncul pesan error “error: nama has private access in Orang
object1.nama="Hasanuddin";” dan “error: nama has private access in Orang
System.out.println(object1.nama);”. Pada dasarnya mudah saja untuk mengakses variabel nama
tersebut dari class lain, cukup merubah private menjadi public. Namun itu berarti bahwa kita tidak
melakukan enkapsulasi.

Beri centang di sini! Pernyataan


Saya telah mengerjakan praktikum 6.17 dengan sungguh-sungguh,
membaca serta memahami setiap penjelasan yang ada mengenai
praktikum tersebut.

Solusi enkapsulasi akan kita lakukan pada praktikum 6.18 berikut:


Praktikum 6.18. Enkapsulasi (solusi praktikum 6.17)
1. Modifikasi project JavaFundamentalI class Main.java.
2. Modifikasi kode pada class Main seperti ditunjukkan pada kode
berikut:
package JavaFundamentalI;

public class Main {

public static void main(String[] args) {


Orang object1 = new Orang();
object1.setNama("Hasanuddin");

257
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

System.out.println(object1.getNama());
}
}

3. Pada class Orang.java tetap seperti pada praktikum 6.17.


4. Kemudian jalankan atau tekan F6 pada class Main.
5. Maka akan muncul output sebagai berikut:

Gambar 6.18. Screenshot class Main.java dan Orang.java praktikum 6.18.

Pada praktikum 6.18 kita telah melakukan teknik enkapsulasi. Seperti yang kita lihat bahwa
walaupun variabel nama pada baris 4 di class Orang.java bersifat private, kita tetap dapat
memodifikasi atau menambahkan nilai kedalam variabel tersebut melalui perintah setter. Dalam
program ini setter yang dimaksud adalah perintah baris 7 pada class Main. Pada baris 7 kita lihat
bahwa kita menambahkan nama ke variabel nama di class Orang melalui method setNama() pada
object1 yang telah dibentuk sebelumnya. Ingat bahwa object dibentuk karena method yang akan
diakses bukan berupa method static. Pada method setNama() terdapat sebuah parameter yakni

258
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO

newname yang bertipe String. Variabel ini akan menerima nilai yang dikirimkan dari perintah baris
7 pada class Main.
Setelah nilai diterima pada method setNama() maka nilai tersebut dieksekusi pada badan
method. Pada badan method eksekusi yang dilakukan adalah memasukkan isi dari variabel newNama
ke variabel Nama seperti ditunjukkan pada perintah baris 13 class Orang. Samapi di sini, secara
otomatis nama sudah memiliki nilai yaitu “Hasanuddin”.
Selanjutnya pada class Main terdapat getter, atau perintah untuk mendapatkan nilai dari
sebuah variabel. Pada perintah baris 8 tersebut kita menampilkan hasil dari pemanggilan method
getNama pada object1. Ingat pada baris 7 kita telah mengirimkan nama “Hasanuddin” ke variabel
nama di class Orang sehingga isi dari variabel nama saat ini adalah “Hasanuddin”. Ketika method
getNama() dieksekusi pada class Orang di baris 7 hingga 9 maka method ini akan mengembalikan
isi variabel nama ke perintah pemanggilnya. Hal ini dapat kita lihat bahwa pada baris 8 terdapat
perintah “return nama;”. Pada class Main, perintah pemanggil method getNama() berada di dalam
fungsi println() sehingga ketika nilai variabel nama diterima oleh perintah pemanggil, yang terjadi
selanjutnya adalah nama tersebut ditampilkan kelayar maka tercetaklah nama “Hasanuddin” pada
layar output.
Jadi mengapa kita memerlukan enkapsulasi?
• Pengontrolan method dan attribute class yang lebih baik
• Class attribute dapat dibuat menjadi read-only jika anda hanya menggunakankan method get.
Selain itu juga dapat dibuat menjadi write-only jika anda hanya menggunakan method set.
• Fleksibel karena programmer cukup mengubah satu bagian kode tanpa perlu mengubah yang
lainnya.
• Meningkatkan keamanan data.

Beri centang di sini! Pernyataan


Saya telah mengerjakan praktikum 6.18 dengan sungguh-sungguh,
membaca serta memahami setiap penjelasan yang ada mengenai
praktikum tersebut.

259

Anda mungkin juga menyukai