Modul Pemrograman Mobile BAB VI Part I
Modul Pemrograman Mobile BAB VI Part I
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.
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
System.out.println("Hallo Covid-19!");
Berikut adalah screenshot source code lengkap setelah anda melakukan langkah ke-2 pada 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.
217
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
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:
218
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
219
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
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
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.
221
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
System.out.println(c);
}
}
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().
Sintaks 6.1. if
if (kondisi) {
223
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
224
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
System.out.println("Selamat malam.");
}
}
}
Berikut adalah gambar source code lengkap setelah anda melakukan langkah ke-2 pada
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.
226
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
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.
while (kondisi) {
// blok kode yang akan dieksekusi
}
do {
// blok kode yang akan dieksekusi
}
while (kondisi)
228
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
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.
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 ().
229
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
Berikut adalah gambar source code lengkap setelah anda melakukan langkah ke-2 dan ke-3
pada 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.
231
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
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.
232
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
233
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
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
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:
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.
package JavaFundamentalI;
class aritmatika {
public static int penjumlahan(int a, int b)
{
return a + b;
}
}
236
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
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.
package JavaFundamentalI;
class aritmatika {
public int penjumlahan(int a, int b)
{
return a + b;
}
}
238
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
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.
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.
package JavaFundamentalI;
class aritmatika {
static int penjumlahan(int a, int b)
{
return a + b;
}
240
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
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.
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.
Untuk attribute, method, dan constructor dapat menggunakan public, private, protected, default.
242
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
b. Non-access modifier
Untuk class, kita dapat menggunakan final atau abstract.
Untuk attribute dan method, kita dapat menggunakan final, static, transient, synchronized, volatile,
atau abstract.
package JavaFundamentalI;
public class Main {
243
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
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.
public Mahasiswa(){
System.out.println("Kami adalah MAHASISWA");
}
}
245
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
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.
247
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
248
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
6. Maka saat ini telah terdapat 2 package yang berisi class Java
249
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
}
}
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
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.
251
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
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.
252
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
class A{
private static void tampil(){
System.out.println("ini class A");
}
}
253
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
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.
254
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
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.
255
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
//Getter
public String getNama(){
return nama;
}
//Setter
public void setNama(String newNama){
this.nama=newNama;
}
}
256
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
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.
257
MODUL PEMROGRAMAN MOBILE DENGAN ANDROID STUDIO
System.out.println(object1.getNama());
}
}
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.
259