PEMROGRAMAN
BERORIENTASI OBJEK
1. JDK
https://www.oracle.com/java/technologies/downloads/#jdk21-windows
2. NETBEANS
https://netbeans.apache.org/
Pengembang atau Developer yang baru mengenal Java sering bingung antara
Java Development Kit dan Java Runtime Environment.
Perbedaannya yaitu bahwa JDK adalah paket alat untuk mengembangkan
perangkat lunak berbasis Java, sedangkan JRE adalah paket alat untuk menjalankan
kode Java.
JRE dapat digunakan sebagai komponen mandiri untuk menjalankan program
Java, tetapi juga merupakan bagian dari JDK. JDK membutuhkan JRE karena
menjalankan program Java adalah bagian dari pengembangannya.
Isi JDK
JDK memiliki Java Virtual Machine (JVM) personal dan beberapa sumber daya
lain yang diperlukan untuk pengembangan Aplikasi Java.
JDK berisi:
1) Java Runtime Environmen (JRE),
2) An interpreter/loader (Java),
3) Compiler/Kompiler (javac),
4) Archiver atau Pengarsip (jar) dan banyak lagi.
Java Runtime Environment pada JDK biasanya disebut Private Runtime karena
terpisah dari JRE biasa dan memiliki konten tambahan. Runtime pada JDK berisi JVM
dan semua libraries kelas yang ada di lingkungan produksi, serta libraries tambahan yang
berguna untuk pengembang, misalnya, libraries internasionalisasi dan libraries IDL /
Interface Definition Library
Paket JDK
Selain memilih versi Java, pengguna juga perlu memilih paket Java. Paket adalah
Kit Pengembangan Java yang ditargetkan untuk berbagai jenis pengembangan. Paket
yang tersedia adalah Java Enterprise Edition (Java EE), Java Standard Edition (Java
SE), dan Java Mobile Edition (Java ME).
Pengembang pemula terkadang tidak yakin paket mana yang benar untuk proyek
mereka. Umumnya, setiap versi JDK berisi Java SE. Jika ingin mengunduh Java EE atau
Java ME, maka juga akan mendapatkan edisi standarnya.
Misalnya, Jave EE adalah platform standar dengan alat tambahan yang berguna
untuk pengembangan aplikasi perusahaan seperti Enterprise JavaBeans atau dukungan
untuk Pemetaan Relasional Objek.
Juga tidak sulit untuk beralih ke JDK lain di masa mendatang jika merasa perlu.
Jangan terlalu khawatir tentang memilih versi Java dan paket JDK yang benar saat baru
memulai.
Source :
https://www.infoworld.com/article/3296360/what-is-the-jdk-introduction-to-the-java-
development-kit.html
Netbeans
Netbeans merupakan salah satu software yang sering digunakan dalam dunia
programmer atau developer. Bukanlah sebagai teks editor biasa, Netbeans adalah suatu
aplikasi IDE atau Integrated Development Environment yang berbasis bahasa Java dan
berjalan diatas Swing. Maksudnya Swing disini adalah suatu teknologi yang
memungkinkan pengembangan aplikasi desktop dan dapat berjalan di berbagai macam
platform seperti Windows, Mac OS, Linux dan Solaris.
Sedangkan Integrated Development Environment suatu sistem pemrograman
atau development dan diintegrasikan kedalam suatu perangkat lunak. Netbeans
menyediakan beberapa tools seperti Graphic User Interface (GUI), kode editor atau text,
suatu compiler serta debugger. Hal ini akan lebih memudahkan kinerja para programmer
atau developer yang menggunakan Netbeans. Tidak hanya menunjang bahasa
pemrograman Java saja, dengan menggunakan Netbeans anda juga dapat membuat
atau mengembangkan program yang berbasis bahasa C, C++ atau bahkan dynamic
language seperti PHP, JavaScript, Groovy, dan Ruby.
Netbeans merupakan suatu aplikasi kode terbuka (open source) yang cukup
sukses dengan banyaknya pengguna serta komunitas yang terus bertambah di seluruh
dunia serta saat ini sudah memiliki 100 mitra bisnis dan kemungkinan akan terus
berkembang kedepannya. Sun Microsystems sebagai pihak sponsor utama dari
Netbeans sudah mulai ada dan dikembangkan sejak tahun 2000 dan sampai saat ini
terus melanjutkan kerjasamanya.
NetBeans terus menyediakan masyarakat dengan penuh kelimpahan mutlak fitur,
baik bagi para pengembang Java serta bagi mereka yang bekerja pada bahasa lain,
terutama JavaScript, PHP, dan C/C++. Untuk pertama kalinya, dan secara unik, Anda
dapat langsung terlibat dalam proyek, pergi ke Apache NetBeans dan menyediakan
permintaan ke codebase. Buat NetBeans apa yang diinginkan dan mengintegrasikan
alat-alat dan teknologi yang dibutuhkan. Sekarang lebih baik dari sebelumnya, Anda
dapat membuat perbedaan dan langsung berpartisipasi di masa depan kemajuan yang
unik lingkungan pengembangan. (GriyaWebsite, 2021).
Kelebihannya :
1) Netbeans tidak hanya dapat digunakan buat java saja, karena Netbeans dapat di
gunakan untuk bahasa pemograman lain seperti C/C++, Ruby, dan PHP.
2) Mempunyai Garbage Collection,dan dapat membuat program berbasis visual dan
event driven,sehingga programmer tidak perlu membuat teks program secara manual
baris per baris untuk membuat Dialog atau user-interface,dapat menghasilkan teks
program secara otomatis,di dalam Netbeans juga terdapat Compailer,Builder,dan
Debugger internal, dll.
TAHAPAN INSTALL JDK & NETBEANS
2) Software Netbeans 8.2 klik 2X dan akan tampil gambar berikut ini
Klik NEXT
3) Centang “I Accept the terms in the licence agreement”
Kemudian klik NEXT
4) Tempat menyimpan installan netbeans dapat ditentukan apakah tetap pada
drive C (System) atau pada Drive D/E dengan memilih BROWSE seperti
pada gambar dibawah ini.
Pada contoh ini installan netbeans tersimpan pada drive C
Kemudian klik NEXT
5) Opsi check for update dapat dicentang atau dihilangkan, kemudian klik
INSTALL
6) Proses install netbeans sedang berlangsung
7) Proses Install netbeans telah selesai
Klik FINISH
CARA MENGGUNAKAN NETBEANS
Pada categories pilih JAVA, project pilih JAVA APPLICATION kemudian klik NEXT
Pada project name dapat diisi LATIHAN 1 atau TUGAS 1 atau nama lain
Project location silahkan ditentukan dimana tempat menyimpan project yang
dikerjakan, kemudian klik FINISH
Latihan 1
Listing Program
CobaTulis.java
public class CobaTulis {
public static void main(String [] args) {
Tulis tulisanku = new Tulis();
tulisanku.Tulisan();
}
}
class Tulis {
void tulisan() {
System.out.println(“Saya belajar Java”);
}
}
Listing Program
20
Hasil
Latihan 2
1. Pada percobaan 2 ini dibuat program yang hasilnya sama dengan Latihan 1
sebelumnya
2. Akan tetapi dibuat dari dua file terpisah, dengan nama Tulis.java dan
TesTulis.java
3. Pada TesTulis.java diciptakan obyek baru yang akan memanggil method
yang ada pada Tulis.java
Menjalankan program
• Untuk menjalankan program, pertama Tulis.java dicompile saja tanpa di-run,
inidikarenakan Tulis.java merupakan class yang tidak berisi program utama
(public static void main)
• Berikutnya, TesTulis.java dicompile lalu dijalankan.
• Hasil running program :
21
Latihan 3
• Program berikut mengimplementasikan class Mobil
• Class Mobil memiliki atribut : aktifitas (parkir atau jalan-jalan), warna,
kecepatan
• Class Mobil memiliki method :
– cekKecepatan jika kecepatan=0, maka aktifitas=parkir
– cetakAtribut mencetak semua nilai atribut
Listing program
class Mobil {
String aktifitas;
String warna;
intkecepatan;
void cekKecepatan() {
if (kecepatan==0)
aktifitas="parkir";
}
void cetakAtribut() {
System.out.println("Aktifitas = "+aktifitas);
System.out.println("warna = "+warna);
System.out.println("Kecepatan = "+kecepatan);
}
public static void main(String [] args) {
Mobil mobilku = new Mobil();
mobilku.kecepatan=0;
mobilku.warna="merah";
mobilku.cekKecepatan();
mobilku.cetakAtribut();
}
}
22
Latihan 1
Listing Program
CobaTulis.java
public class CobaTulis {
public static void main(String [] args) {
Tulis tulisanku = new Tulis();
tulisanku.Tulisan();
}
}
class Tulis {
void tulisan() {
System.out.println(“Saya belajar Java”);
}
}
Listing Program
20
Hasil
Latihan 2
1. Pada percobaan 2 ini dibuat program yang hasilnya sama dengan Latihan 1
sebelumnya
2. Akan tetapi dibuat dari dua file terpisah, dengan nama Tulis.java dan
TesTulis.java
3. Pada TesTulis.java diciptakan obyek baru yang akan memanggil method
yang ada pada Tulis.java
Menjalankan program
• Untuk menjalankan program, pertama Tulis.java dicompile saja tanpa di-run,
inidikarenakan Tulis.java merupakan class yang tidak berisi program utama
(public static void main)
• Berikutnya, TesTulis.java dicompile lalu dijalankan.
• Hasil running program :
21
Latihan 3
• Program berikut mengimplementasikan class Mobil
• Class Mobil memiliki atribut : aktifitas (parkir atau jalan-jalan), warna,
kecepatan
• Class Mobil memiliki method :
– cekKecepatan jika kecepatan=0, maka aktifitas=parkir
– cetakAtribut mencetak semua nilai atribut
Listing program
class Mobil {
String aktifitas;
String warna;
intkecepatan;
void cekKecepatan() {
if (kecepatan==0)
aktifitas="parkir";
}
void cetakAtribut() {
System.out.println("Aktifitas = "+aktifitas);
System.out.println("warna = "+warna);
System.out.println("Kecepatan = "+kecepatan);
}
public static void main(String [] args) {
Mobil mobilku = new Mobil();
mobilku.kecepatan=0;
mobilku.warna="merah";
mobilku.cekKecepatan();
mobilku.cetakAtribut();
}
}
22
REVIEW TUGAS 1 :
KELAS TEORI
1. DEKLARASI KELAS
Dalam kelas "Lampu", terdapat dua variabel, yaitu "status" dengan tipe data int (integer) dan
"merek" dengan tipe data String.
Variabel ini akan digunakan untuk menyimpan status dan merek dari lampu.
3. METODE “LAMPUDINYALAKAN()”
Ini adalah sebuah metode (fungsi) yang digunakan untuk menyalakan lampu.
Ketika metode ini dipanggil, variabel "status" diatur menjadi 1, yang dapat diartikan sebagai
lampu sedang menyala
4. METODE ”LAMPU DIMATIKAN()”
Ini adalah sebuah metode (fungsi) yang digunakan untuk mematikan lampu.
Ketika metode ini dipanggil, variabel "status" diatur menjadi 0, yang dapat diartikan sebagai
lampu dimatikan.
5. PENUTUP KELAS
KELAS PRAKTEK
LATIHAN 1
Contoh sederhana dalam bahasa pemrograman Java yang terdiri dari dua kelas, yaitu "CobaTulis"
dan "Tulis"
1. KELAS “COBATULIS”
1. Ini adalah kelas utama yang memiliki metode main. Metode main adalah titik awal
eksekusi program Java.
2. Di dalam metode main, kita membuat objek dari kelas "Tulis" yang disebut "tulisanku"
menggunakan pernyataan Tulis tulisanku = new Tulis();.
3. Setelah itu, kita memanggil metode tulisan() dari objek "tulisanku" menggunakan
pernyataan tulisanku.tulisan();. Metode ini akan mencetak teks "Saya belajar Java" ke
konsol/monitor.
2. KELAS “TULIS”
Kesimpulan :
Keseluruhan program ini sebenarnya hanya mencetak satu baris teks ke konsol saat
dijalankan, yaitu "Saya belajar Java".
Program diatas memanfaatkan konsep objek dan metode dalam pemrograman berorientasi
objek pada Java.
LATIHAN 2
1. DEKLARASI KELAS
3. PENUTUP KELAS
3. PENUTUP “KELASTULIS”
CATATAN :
1. Dalam program yang diberikan, kelas "Tulis" tidak terlampir.
2. Agar program dapat berjalan dengan baik, harus ada definisi kelas "Tulis".
3. Jika kita asumsikan bahwa kelas "Tulis" memiliki metode Tulisan(), maka contoh definisi kelas
"Tulis" akan terlihat seperti contoh dibawah ini :
Dengan asumsi definisi tersebut, program akan menciptakan objek "tulisanku" dari kelas
"Tulis" dan memanggil metode Tulisan(), yang akan mencetak teks "Halo, ini contoh tulisan
dari kelas Tulis" ke konsol/monitor.
LATIHAN 3
Kelas "Mobil" memiliki tiga variabel, yaitu aktifitas (tipe String), warna (tipe String), dan
kecepatan (tipe int).
3. METODE “CEKKECEPATAN()”
CATATAN :
Dengan asumsi tidak ada kesalahan sintaksis atau logika, program class mobil seharusnya
mencetak informasi mobil, yaitu :
"parkir" untuk aktifitas,
"merah" untuk warna, dan
"0" untuk kecepatan
== Semoga bermanfaat ==
LATIHAN
Petunjuk :
latihan dapat dibuat menggunakan netbeans atau editor online seperti :
1. Online Java Compiler (tutorialspoint.com)
2. Online Java Compiler (programiz.com)
PENJELASAN :
Program yang dibuat menciptakan dua kelas, yaitu :
1. Tabungan
2. TesTabungan
Kelas Tabungan:
Variabel Anggota:
saldo (tipe data double): Menyimpan jumlah saldo dalam akun tabungan.
Konstruktor:
public Tabungan(double jumlah): Merupakan konstruktor untuk kelas Tabungan yang
menerima parameter jumlah dan menginisialisasi saldo dengan nilai tersebut.
Metode-metode:
public void ambil(double jumlah): Mengurangkan jumlah tertentu dari saldo.
public void nabung(double jumlah): Menambahkan jumlah tertentu ke saldo.
Kelas TesTabungan:
Metode Utama (main):
✓ Membuat objek rekeningku dari kelas Tabungan dengan saldo awal sebesar 1.000.000.
✓ Menampilkan saldo awal dengan menggunakan System.out.println.
✓ Menggunakan metode ambil untuk mengambil 800.000 dari saldo.
✓ Menampilkan saldo setelah penarikan.
✓ Menggunakan metode nabung untuk menambahkan 100.000 ke saldo.
✓ Menampilkan saldo setelah penyetoran.
Program ini semoga dapat membantu memahami konsep dasar pemrograman berorientasi objek, di mana
objek (rekeningku) memiliki atribut (saldo) dan dapat menjalankan beberapa tindakan atau metode yaitu
(ambil dan nabung). Program ini menciptakan suatu entitas "tabungan" yang dapat berinteraksi dengan
dunia luar melalui metodenya.
FLOW CONTROL
Tujuan Pembelajaran :
a) Membuat program pencabangan dengan if dan switch
b) Membuat perulangan dengan for, while, dan do-while
Penjelasan :
Program di atas adalah contoh sederhana penggunaan pernyataan if dalam bahasa
pemrograman Java
a) Deklarasi Kelas
Jika kondisi dalam pernyataan if terpenuhi (nilai variabel angka lebih besar dari
5), maka blok kode di dalamnya akan dieksekusi. Di sini, program mencetak teks
"Angka lebih besar dari 5" ke konsol.
f) Penutup Blok if
Penutup blok kode pernyataan if. Semua kode di dalam blok ini hanya akan
dieksekusi jika kondisi dalam pernyataan if terpenuhi.
g) Penutup Metode Utama
2) Penggunaan if-else
Penjelasan :
Program di atas adalah contoh penggunaan pernyataan if-else dalam bahasa
pemrograman Java.
a) Deklarasi Kelas
Setiap program Java harus memiliki metode utama dengan tanda tangan yang
spesifik (public static void main(String[] args)). Eksekusi program dimulai dari
sini.
c) Deklarasi dan Inisialisasi Variabel
Jika kondisi dalam pernyataan if terpenuhi (nilai variabel angka lebih besar dari
5), maka blok kode di dalamnya akan dieksekusi. Di sini, program mencetak teks
"Angka lebih besar dari 5" ke konsol/monitor.
f) Pernyataan else
Jika kondisi dalam pernyataan if tidak terpenuhi, maka blok kode dalam
pernyataan else akan dieksekusi.
g) Blok Kode dalam else
Blok kode ini akan dieksekusi jika kondisi dalam pernyataan if tidak terpenuhi. Di
sini, program mencetak teks "Angka kurang dari atau sama dengan 5" ke
konsol/monitor.
h) Penutup Blok if-else
Penutup blok kode pernyataan if-else. Semua kode di dalam blok ini atau blok else
hanya akan dieksekusi tergantung pada apakah kondisi dalam pernyataan if
terpenuhi atau tidak.
i) Penutup Metode Utama
Dalam kasus ini, karena nilai angka adalah 3 (yang kurang dari 5), maka pesan
"Angka kurang dari atau sama dengan 5" akan dicetak ke konsol/monitor saat
program dijalankan.
Penjelasan :
Program di atas adalah contoh penggunaan pernyataan if-else if-else dalam bahasa
pemrograman Java.
a) Deklarasi Kelas
Setiap program Java harus memiliki metode utama dengan tanda tangan yang
spesifik (public static void main(String[] args)). Eksekusi program dimulai dari
sini.
c) Deklarasi dan Inisialisasi Variabel
Jika kondisi dalam pernyataan if terpenuhi (nilai variabel angka lebih besar dari
10), maka blok kode di dalamnya akan dieksekusi. Di sini, program mencetak teks
"Angka lebih besar dari 10" ke konsol/monitor.
f) Pernyataan else if
Jika kondisi dalam pernyataan if tidak terpenuhi, maka kondisi dalam pernyataan
else if akan diperiksa. Jika kondisinya terpenuhi (nilai variabel angka lebih besar
dari 5), blok kode dalamnya akan dieksekusi
g) Blok Kode dalam else if
Blok kode ini akan dieksekusi jika kondisi dalam pernyataan else if terpenuhi. Di
sini, program mencetak teks "Angka lebih besar dari 5 tetapi kurang dari atau sama
dengan 10" ke konsol.
h) Pernyataan else
Jika kondisi dalam pernyataan else if tidak terpenuhi, maka blok kode dalam
pernyataan else akan dieksekusi.
i) Blok Kode dalam else
Blok kode ini akan dieksekusi jika tidak ada kondisi sebelumnya yang terpenuhi.
Di sini, program mencetak teks "Angka kurang dari atau sama dengan 5" ke
konsol.
j) Penutup Blok if-else if-else
Dalam kasus ini, karena nilai angka adalah 7, maka kondisi kedua terpenuhi, dan
pesan "Angka lebih besar dari 5 tetapi kurang dari atau sama dengan 10" akan
dicetak ke konsol/monitor saat program dijalankan.
4) Penggunaan Bersarang (Nested if)
Penjelasan :
Program di atas adalah contoh penggunaan pernyataan if bersarang (nested if)
dalam bahasa pemrograman Java.
a) Deklarasi Kelas
Setiap program Java harus memiliki metode utama dengan tanda tangan yang
spesifik (public static void main(String[] args)). Eksekusi program dimulai dari
sini.
c) Deklarasi dan Inisialisasi Variabel
Dua variabel, angka1 dan angka2, dideklarasikan dan diinisialisasi dengan nilai
5 dan 10.
d) Pernyataan if Bersarang
Ini adalah pernyataan if bersarang. Pernyataan if kedua berada di dalam blok kode
pernyataan if pertama. Artinya, kondisi dalam angka1 > 0 harus terpenuhi sebelum
kita memeriksa kondisi dalam angka2 > 0.
e) Blok Kode dalam Pernyataan if Pertama
Jika kondisi dalam pernyataan if pertama dan if kedua terpenuhi (yaitu, kedua
angka lebih besar dari 0), maka blok kode di dalamnya akan dieksekusi. Di sini,
program mencetak teks "Kedua angka positif" ke konsol/monitor.
f) Penutup Blok if Bersarang
Penutup blok kode pernyataan if bersarang. Semua kode di dalam blok ini hanya
akan dieksekusi jika kedua kondisi terpenuhi.
g) Penutup Metode Utama
2) Penggunaan while
3) Penggunaan do-while
Penjelasan:
1) Pada contoh pertama (ContohFor)
Perulangan for digunakan untuk mencetak angka 1 hingga 5.
2) Pada contoh kedua (ContohWhile)
Perulangan while digunakan untuk mencetak angka 1 hingga 5. Pada perulangan
while, kita perlu menginisialisasi variabel sebelum memasuki loop.
3) Pada contoh ketiga (ContohDoWhile)
Perulangan do-while digunakan untuk mencetak angka 1 hingga 5. Pada perulangan
do-while, blok kode akan dieksekusi setidaknya satu kali sebelum kondisi diperiksa.
Setiap contoh di atas akan mencetak output berupa angka 1 hingga 5 ke konsol/monitor.
Anda dapat mengganti logika dalam perulangan sesuai kebutuhan program.
ARRAY PADA JAVA
Kedua cara di atas dapat kalian gunakan untuk deklarasi array di java
Contoh Program Java dengan Array
Pada program di atas, kita mendeklarasikan array dengan nama mahasiswa dengan tipe
string yang memiliki 4 anggota/elemen, yaitu Marco, Yuyun, Nurlia dan Denis. Setiap nilai
menempati indeks array seperti berikut :
Untuk menampikan mahasiswa dengan nama Acep, maka indeks array yang di akses
adalah indeks ke-2, sehingga program diatas akan menghasilkan output ‘Nurlia’.
Output :
Jika ingin menampilkan semua elemen array maka perintah yang digunakan adalah :
Menampilkan Elemen Array Menggunakan Perulangan
Jika array mempunyai banyak elemen, untuk lebih efisien kita bisa menggunakan
perulangan untuk mengakses setiap nilai dalam array.
Contoh :
Program diatas kita membuat objek dengan nama input yang mengacu pada class
scanner. Nantinya user akan diminta memasukan jumlah kata yang di tampung pada
variabel n.
Array dibuat dengan nama kata dengan tipe string, array ini akan memiliki jumlah elemen
sebanyak nilai n.
User akan memasukan setiap kata yang akan disimpan pada array kata[] yang mengacu
pada indeks ke-i sesuai dengan nilai i dalam proses perulangan tersebut.
Pada bagian akhir program kita mencetak seluruh nilai dalam array kata menggunakan
perulangan for juga.
Catatan :
Editor online tidak dapat menampilkan hasilnya (https://www.tutorialspoint.com/)
Apabila menggunakan netbeans dapat menginput data sebagai berikut :
Overloading
Overloading terjadi ketika dua atau lebih metode dalam kelas memiliki nama yang sama,
tetapi jumlah atau tipe parameter berbeda. Overloading memungkinkan Anda membuat
metode dengan nama yang sama untuk menangani situasi yang berbeda.
Contoh :
Penjelasan :
1) Deklarasi Kelas
2) Metode Pertama
Metode pertama bernama add menerima dua parameter bertipe int dan
mengembalikan hasil penjumlahan keduanya.
3) Metode Kedua
Metode kedua bernama add juga bernama sama dengan metode pertama, namun
menerima tiga parameter bertipe int dan mengembalikan hasil penjumlahan
ketiganya.
4) Metode Ketiga
Metode ketiga juga bernama add, tetapi menerima dua parameter bertipe double dan
mengembalikan hasil penjumlahan keduanya.
5) Metode main
Metode main adalah metode utama yang akan dieksekusi saat program dijalankan.
Di dalamnya, kita membuat objek dari kelas Calculator.
Memanggil metode pertama dari objek calculator dengan dua parameter bertipe int
dan mencetak hasilnya ke konsol/monitor.
Memanggil metode kedua dari objek calculator dengan tiga parameter bertipe int
dan mencetak hasilnya ke konsol/monitor.
Memanggil metode ketiga dari objek calculator dengan dua parameter bertipe
double dan mencetak hasilnya ke konsol/monitor
Contoh program diatas menunjukkan konsep overloading, di mana kita dapat memiliki
beberapa metode dengan nama yang sama tetapi berbeda dalam jumlah atau tipe
parameter. Java akan memilih metode yang sesuai berdasarkan jumlah dan tipe
parameter yang diberikan pada saat pemanggilan metode.
Overriding
Overriding terjadi ketika sebuah kelas anak (subclass) menyediakan implementasi
yang berbeda untuk metode yang sudah dideklarasikan di kelas induk (superclass).
Metode di kelas anak harus memiliki nama, tipe kembalian, dan parameter yang sama
dengan metode di kelas induk.
Contoh :
Penjelasan :
1) Kelas Induk (Animal)
Kelas AnimalTest memiliki metode main yang membuat objek cat dan dog dengan
tipe data Animal, tetapi diinstansiasi sebagai objek dari kelas Cat dan Dog masing-
masing.
✓ cat.makeSound() memanggil metode makeSound dari objek cat, yang
sebenarnya adalah objek dari kelas Cat. Oleh karena itu, outputnya adalah
"Meow".
✓ dog.makeSound() memanggil metode makeSound dari objek dog, yang
sebenarnya adalah objek dari kelas Dog. Oleh karena itu, outputnya adalah
"Woof".
Contoh dari program Java yang Anda berikan mengandung variabel lokal. Pada metode
f() dalam kelas X:
1
2) Method Scope (Lingkup Metode)
Variabel lokal yang dideklarasikan di dalam suatu metode hanya dapat diakses di
dalam metode tersebut.
3) Class Scope (Lingkup Kelas):
Variabel yang dideklarasikan di luar metode atau konstruktor di suatu kelas, tetapi di
dalam kelas tersebut, dapat diakses oleh seluruh metode atau konstruktor di kelas
tersebut.
4) Instance and Static Scope (Lingkup Instance dan Static):
Variabel instance dan variabel static memiliki lingkup yang lebih besar daripada
variabel lokal. Variabel instance terkait dengan objek kelas, sementara variabel static
terkait dengan kelas itu sendiri.
Semua variabel lokal hanya dapat diakses di dalam blok, metode, atau konstruktor
tempat mereka dideklarasikan, dan tidak dapat diakses di luar konteks tersebut.
2
Latihan :
Output :
Penjelasan Program :
1. Deklarasi dan Definisi Kelas X
3
✓ Kelas X didefinisikan dengan sebuah metode f().
✓ Di dalam metode f(), ada loop for yang berjalan dari j = 0 hingga j < 5.
✓ Di dalam loop, ada deklarasi variabel lokal int k yang diinisialisasi dengan nilai
100.
✓ Setiap iterasi loop mencetak nilai j dan k.
2. Kelas variablescope :
Penjelasan Eksekusi :
1) Program dimulai dari metode main dalam kelas variablescope.
2) Objek dari kelas X dibuat menggunakan X x = new X();.
3) Metode f() dari objek x dipanggil dengan x.f();.
4) Di dalam metode f(), loop for dijalankan lima kali.
5) Setiap iterasi loop mencetak nilai j dan k, yang selalu k sama (100) karena
deklarasi k berada dalam loop.
6) Output dicetak ke konsol untuk setiap iterasi.
Catatan Penting :
1) Ada kesalahan penulisan nama kelas. Pada deklarasi kelas X, nama kelas dimulai
dengan huruf kecil (x), sedangkan pada pemanggilan objek di metode main, nama
kelas dimulai dengan huruf besar (X). Nama kelas harus konsisten dalam Java.
4
2) Pada pemanggilan objek x.f();, f seharusnya ditulis dengan huruf kecil (x.f();).
3) Java bersifat case-sensitive.
5
PACKAGE DAN IMPORT CLASS
Berikut adalah beberapa poin penting yang menjelaskan konsep package di Java:
1) Namespace
✓ Package menyediakan mekanisme untuk mengelompokkan kelas-kelas dan
interface ke dalam namespace terpisah.
✓ Nama package harus sesuai dengan struktur direktori tempat kelas-kelas tersebut
disimpan.
2) Struktur Direktori
✓ Setiap package di Java sesuai dengan struktur direktori.
✓ Sebagai contoh, package com.example.myproject akan memiliki struktur
direktori yang mirip dengan com/example/myproject.
3) Deklarasi Package
✓ Deklarasi package dilakukan pada awal file kelas menggunakan pernyataan
package.
✓ Misalnya, package com.example.myproject; menyatakan bahwa kelas tersebut
berada dalam package com.example.myproject.
4) Import Package
✓ Untuk menggunakan kelas atau antarmuka dari package lain, Anda dapat
mengimpornya menggunakan pernyataan import.
✓ Misalnya, import com.example.otherpackage.OtherClass; memungkinkan Anda
menggunakan kelas OtherClass dari package com.example.otherpackage dalam
kelas saat ini.
5) Access Modifier
✓ Package juga mempengaruhi kontrol akses dengan menyediakan level akses
default (package-private).
✓ Jika tidak ada modifier akses yang diberikan (seperti public, private, atau
protected), kelas tersebut dapat diakses oleh kelas-kelas dalam package yang
sama.
6) Package Hierarki
✓ Package dapat membentuk hierarki, di mana package lebih dalam dapat berisi
package yang lebih dalam lagi.
✓ Misalnya, package com.example dapat berisi package com.example.util yang
lebih dalam.
7) Keuntungan Package
✓ Organisasi Kode : Mempermudah organisasi dan struktur kode proyek.
✓ Pencegahan Konflik Nama : Mencegah konflik nama antar kelas dengan
mengelompokkannya dalam package yang berbeda.
✓ Kemudahan Pemeliharaan : Membuat kode lebih mudah dipelihara dan
dimodifikasi karena kelas-kelas yang terkait dikelompokkan Bersama
CONTOH :
Mari kita asumsikan Anda ingin membuat package untuk memodelkan beberapa kelas
yang terkait dengan kegiatan di sebuah kampus. Berikut adalah contoh sederhana
penggunaan package untuk kampus:
1) Membuat Package
✓ Misalkan kita ingin membuat package bernama kampus.
✓ Struktur direktorinya akan terlihat seperti ini :
2) Isi Kelas dalam Package
3) Main Program
Kesimpulan :
Pada contoh diatas, kita membuat package kampus yang berisi kelas-kelas terkait
dengan kampus seperti : Mahasiswa, Dosen, dan MataKuliah.
Selanjutnya, dalam program utama (MainProgram), kita mengimpor package kampus
dan menggunakan kelas-kelas tersebut untuk membuat objek dan menampilkan
informasi (output)
KONSEP INHERITANCE
(PEWARISAN)
✓ Dari hirarki diatas dapat dilihat bahwa, semakin kebawah, class akan semakin bersifat
spesifik. Class mamalia memiliki seluruh sifat yang dimiliki oleh binatang, demikian
halnya juga macan , kucing, Paus dan Monyet memiliki seluruh sifat yang diturunkan
dari class mamalia.
✓ Dengan konsep ini, karakteristik yang dimiliki oleh class binatang cukup didefinisikan
didefinisikan dalam class binatang saja.
✓ Class mamalia tidak perlu mendefinisikan ulang apa yang telah dimiliki oleh class
binatang, karena sebagai class turunannya, ia akan mendapatkan karakteristik dari
class binatang secara otomatis. Demikian juga dengan class macan, kucing, Paus
dan monyet, hanya perlu mendefinisikan karakteristik yang spesifik dimiliki oleh class-
nya masing-masing.
✓ Dengan memanfaatkan konsep pewarisan ini dalam pemrograman, maka hanya perlu
mendefinisikan karakteristik yang lebih umum akan didapatkan dari class darimana ia
diturunkan.
Keuntungan Inheritance
✓ Subclass menyediakan state/behaviour yang spesifik yang membedakannya dengan
superclass, hal ini akan memungkinkan programmer Java untuk menggunakan ulang
source code dari superclass yang telah ada.
✓ Programmer Java dapat mendefinisikan superclass khusus yang bersifat generik,
yang disebut abstract class, untuk mendefinisikan class dengan behaviour dan state
secara umum.
Istilah Inheritance
✓ Extends
Keyword ini harus kita tambahkan pada definisi class yang menjadi subclass.
✓ Superclass
Superclass digunakan untuk menunjukkan hirarki class yang berarti class dasar dari
subclass/class anak.
✓ Subclass
Subclass adalah class anak atau turunan secara hirarki dari superclass.
✓ Super Keyword
Ini digunakan untuk memanggil konstruktor dari superclass atau menjadi variabel
yang mengacu pada superclass.
Methode Overriding Pendefinisian ulang method yang sama pada subclass
Dalam inheritance, method overriding berbeda dengan method overloading. Kalau
method overriding adalah mendefinisikan kembali method yang sama, baik nama method
maupun signature atau parameter yang diperlukan dalam subclass, kalau method
overloading adalah mendefinisikan method yang memiliki nama yang sama, tetapi
dengan signature yang berbeda dalam definisi class yang sama.
Kita baru perlu menerapkan inheritance pada saat kita jumpai ada suatu class
yang dapat diperluas dari class lain.
KONSEP PEWARISAN
Pewarisan atau yang sering disebut dengan istilah inheritance merupakan suatu mekanisme
dimana subclass (kelas anak) dapat mewarisi sifat-sifat yang dimiliki oleh parent class (kelas
induk). Pewarisan dapat berupa attribute yang dimiliki oleh parent class maupun tingkahlakunya.
Pewarisan dibagi dalam beberapa tipe, yakni pewarisan single, multilevel, hierarchical, multiple,
dan hybrid. Di dalam java, pewarisan multiple dan hibrid tidak dapat dilakukan.
Pewarisan class di dalam bahasa Java ditandai dengan simbol extends yang diikuti dengan
nama class induk yang mewariskannya. Secara struktur, pewarisan menerapkan struktur sebagai
berikut :
Dimana subclass dan superclass merupakan nama identifier (nama class) yang mewarisi dan
mewariskan sifat-sifat, baik attribute (variabel) maupun tingkahlaku (operasi/method).
Menerapkan Pewarisan
Setelah mempelajari teori siangkat tentang perawarisan diatas, maka berikut ini diberikan contoh
program untuk memudahkan peserta praktikan dalam memahami konsep dan praktis pewarisan
class. Dalam contoh ini diberikan beberapa class yang memiliki asosiasi hubungan antar class,
yakni class Masjid yang mewariskan sifat-sifatnya kepada class anak yaitu class Marbot dan class
Khatibjumat. Untuk lebih jelasnya, silahkan ikuti langkah-langkah praktikum berikut ini,
berdasarkan acuan dari diagram class berikut :
Langkah - langkah :
1) Buka NetaBean, lalu buat project baru dengan nama TesPewarisan
2) Selanjutnya tambahkan file baru, klik File - New File, pada kolom Categori pilih Java, dan
pada kolom File Type pilih Java Class, Next
3) Ganti NewClass dengan Masjid, selanjutnya hapus seluruh kode yang ada, dan ketik ulang
kode berikut
4) Selanjutnya tambahkan kembali file baru, ikuti langkah 2, ganti NewClass dengan nama
Marbot 5) Kemudian hapus semua kode yang ada, dan tulis kembali kode program berikut
5) Tambahkan kembali file baru, ikuti langkah nomor 2, dan ganti NewClass dengan nama
Khatibjumat 7) Hapus semua kode yang ada, dan tulis ulang kode berikut
6) Langkah selanjutnya, buka file TesPewarisan yang sudah dibuat diawal, kemudian sesuaikan
kode program berikut
7) Simpan perubahan semua file, Ctrl + Shift+S, selanjutnya jalankan program. Jika program
sukses akan menampilkan keluaran program seperti berikut
8) Langkah selanjutnya, buka file TesPewarisan yang sudah dibuat diawal, kemudian sesuaikan
kode program berikut
9) Simpan perubahan semua file, Ctrl + Shift+S, selanjutnya jalankan program. Jika program
sukses akan menampilkan keluaran program seperti berikut
POLIMORFISME
Polimorfisme adalah salah satu konsep dalam pemrograman berorientasi objek yang
memungkinkan objek memiliki banyak bentuk atau perilaku. Dalam Java, polimorfisme
dapat dicapai melalui penggunaan "overloading" (pengaturan ulang) dan "overriding"
(penggantian metode). Berikut adalah contoh sederhana dari kedua jenis polimorfisme
tersebut:
Polimorfisme adalah salah satu konsep dalam pemrograman berorientasi objek yang
memungkinkan suatu objek dapat memiliki banyak bentuk atau perilaku. Dalam konteks
pemrograman berbasis class, polimorfisme dapat dicapai melalui penggunaan metode dengan
nama yang sama namun implementasinya berbeda di setiap class yang terkait.
Berikut adalah contoh polimorfisme pada class hewan menggunakan bahasa
pemrograman Java:
Contoh diatas dibuat menggunakan editor online :
https://www.tutorialspoint.com/java/online-java-compiler.php
Output :
Class ini adalah class dasar atau parent class yang memiliki metode bersuara(). Metode ini
memberikan implementasi default, yaitu mencetak "Suara manusia..." ke monitor.
2) Class Turunan Pria:
Class ini adalah subclass dari Manusia dan meng-override metode bersuara() dari class dasar.
Metode ini mencetak "Halo, saya seorang pria." ke monitor.
Class ini juga adalah subclass dari Manusia dan meng-override metode bersuara() untuk
mencetak "Halo, saya seorang wanita.".
Class ini juga adalah subclass dari Manusia dan meng-override metode bersuara() untuk
mencetak "Halo, saya seorang anak.".
5) Class Utama (Main):
1) Class utama (Main) sebagai entry point program. Di dalam metode main(), kita membuat
objek-objek dari class turunan (Pria, Wanita, Anak) menggunakan polimorfisme dengan
menggunakan tipe data Manusia.
2) Metode dengarkanSuara() menerima objek Manusia sebagai parameter dan memanggil
metode bersuara() dari objek tersebut. Dengan ini, kita menggunakan polimorfisme
untuk memanggil metode yang sesuai dengan tipe objek manusia yang diberikan.
Hasil keluaran program akan mencetak suara yang sesuai dengan masing-masing objek (Pria,
Wanita, Anak) yang dibuat. Program ini menunjukkan konsep polimorfisme di mana metode yang
dipanggil pada waktu kompilasi bergantung pada jenis objek yang sebenarnya pada waktu
runtime.
Catatan :
Anotasi @Override digunakan dalam Java untuk memberi tahu kompiler bahwa metode
saat ini menggantikan metode yang ada di superclass atau interface. Ini membantu dalam
menghindari kesalahan penulisan metode yang seharusnya menggantikan metode dari superclass
atau interface.
Berikut adalah beberapa kegunaan dari anotasi @Override:
1) Pengecekan Kesalahan:
Jika metode yang di-annotasi dengan @Override tidak benar-benar menggantikan metode
dari superclass atau interface, maka kompiler akan menghasilkan kesalahan (compile-time
error).
2) Dokumentasi Kode:
Membantu dalam dokumentasi kode. Anotasi ini memberi tahu pembaca kode bahwa
metode tertentu ditujukan untuk menggantikan metode yang ada di superclass atau
interface.
3) Peningkatan Keterbacaan:
Membuat kode lebih mudah dibaca dan memahami, terutama ketika programer membaca
atau memodifikasi kode yang ditulis oleh orang lain.