Anda di halaman 1dari 90

MODUL

PEMROGRAMAN
BERORIENTASI OBJEK

INSTITUT TEKNOLOGI DAN BISNIS


STIKOM AMBON
KATA PENGANTAR

Modul ini dirancang untuk memberikan pemahaman mendalam tentang


konsep dan praktik dalam pemrograman berorientasi objek (OOP). Pemrograman
berorientasi objek adalah paradigma pemrograman yang sangat penting dalam
pengembangan perangkat lunak modern, yang memungkinkan pemodelan sistem
yang kompleks dengan lebih efisien dan mudah dimengerti.
Dalam modul ini, Anda akan diperkenalkan dengan konsep dasar OOP
seperti kelas, objek, enkapsulasi, pewarisan, dan polimorfisme. Setiap konsep akan
disajikan dengan cara yang jelas dan terstruktur, serta disertai dengan contoh-
contoh praktis untuk membantu pemahaman Anda.
Melalui serangkaian latihan praktikum, Anda akan memiliki kesempatan
untuk menerapkan konsep-konsep OOP dalam bahasa pemrograman tertentu,
seperti Java atau Python. Latihan-latihan ini dirancang untuk meningkatkan
pemahaman Anda tentang bagaimana konsep-konsep tersebut dapat diterapkan
dalam pengembangan perangkat lunak sehari-hari.
Kami berharap bahwa modul praktikum ini akan membantu Anda
memahami pemrograman berorientasi objek dengan lebih baik dan meningkatkan
keterampilan Anda dalam mengembangkan perangkat lunak yang efisien dan
mudah dipelihara. Selamat belajar dan semoga sukses!.

Palu, Oktober 2023


TOOLS UNTUK PRAKTIKUM

1. JDK
https://www.oracle.com/java/technologies/downloads/#jdk21-windows

2. NETBEANS
https://netbeans.apache.org/

Catatan : netbeans versi terbaru sudah include dengan JDK


Apa itu JDK
Java Development Kit (JDK) adalah salah satu dari tiga paket teknologi inti yang
digunakan dalam pemrograman Java, bersama dengan JVM (Java Virtual Machine) dan
JRE (Java Runtime Environment).
Penting untuk membedakan antara ketiga teknologi ini, serta memahami
bagaimana mereka terhubung:
1) JVM adalah komponen platform Java yang mengeksekusi program.
2) JRE adalah bagian pada disk dari Java yang membuat JVM.
3) JDK memungkinkan pengembang untuk membuat program Java yang dapat
dieksekusi dan dijalankan oleh JVM dan JRE.

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.

JDK & Kompiler Java


Selain JRE, yang merupakan lingkungan yang digunakan untuk menjalankan
aplikasi Java, setiap JDK berisi compiler Java. Compiler (Kompilator) adalah program
perangkat lunak yang mampu mengambil file .java mentah–yang berupa teks biasa–dan
mengubahnya menjadi file .class yang dapat dieksekusi.

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

JDK Paling Populer


1) Oracle JDK: JDK paling populer dan distributor utama Java11,
2) OpenJDK: Siap digunakan: JDK 15, JDK 14, dan JMC,
3) Azul Systems Zing: JDK yang efisien dan latensi rendah untuk os Linux,
4) Sistem Azul: merek Zulu berbasis untuk Linux, Windows, Mac OS X,
5) IBM J9 JDK: untuk AIX, Linux, Windows, dan banyak OS lainnya,
6) Amazon Corretto: opsi terbaru dengan build OpenJDK tanpa biaya dan dukungan
jangka panjang.

Memulai Menggunakan JDK


Saat mengunduh JDK, pengguna harus memilih versi Java yang ingin digunakan.
Java 8 adalah versi yang paling umum digunakan, tetapi saat ini sudah terdapat Java 21
adalah rilis dukungan jangka panjang (LTS).

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.

Kompatibilitas Versi JDK


Karena JDK menyediakan kompiler untuk program Java, JDK yang digunakan
menentukan versi Java yang dapat dikodekan. Misalnya, jika ingin menggunakan fitur
pemrograman fungsional yang lebih baru yang ditemukan di Java 8 (seperti panah
operator Lambda) , maka memerlukan setidaknya Java 8 JDK untuk kompilasi. Jika tidak,
perintah javac akan menolak kode dengan kesalahan sintaks.

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).

Fitur Java Netbeans


Fitur – fitur yang terdapat pada Netbeans antara lain:
1) Smart Code Completion, untuk mengusulkan nama variabel dari suatu tipe,
melengkapi keyword dan mengusulkan tipe parameter dari sebuah method.
2) Bookmarking, fitur yang digunakan untuk menandai baris yang suatu saat hendak
kita modifikasi.
3) Go to commands, fitur yang digunakan untuk jump ke deklarasi variabel, source code
atau file yang ada pada project yang sama.
4) Code generator, jika kita menggunakan fitur ini kita dapat meng-generate constructor,
setter and getter method dan yang lainnya.
5) Error stripe, fitur yang akan menandai baris yang eror dengan memberi highlight
merah.

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

A. JAVA DEVELOPMENT KIT (JDK)


1) Siapkan software JDK yang akan diinstall, dalam contoh ini menggunakan JDK
versi 8 (Rekomendasi : gunakan versi terbaru)

2) Klik 2X software JDK akan muncul tampilan berikut, klik NEXT :

3) Selanjutnya akan muncul tampil berikut, klik NEXT


Apabila ingin menyimpan instalan jdk pada drive D atau E klik CHANGE
Pada contoh ini instalan tersimpan pada drive C
Akan tampil proses dibawah ini, biarkan sampai selesai
4) Proses install JDK telah selesai (successfully installed)
Klik CLOSE
B. NETBEANS
1) Siapkan software Netbeans yang akan diinstall, dalam contoh ini
menggunakan Netbeans versi 8.2 (Rekomendasi : gunakan versi terbaru)

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

Klik 2X icon netbeans pada layar PC/laptop


Klik menu file  new project

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

1. Dibuat program untuk menampilkan tulisan


2. Nama program : CobaTulis.java
3. Dalam program ada class Tulis yang berisi method Tulisan untuk
menampilkan data di layar
4. Dalam program utama diciptakan obyek baru bernama tulisanku yang berasal
dari class Tulis
5. Kemudian dengan menggunakan obyek tulisanku dipanggil method Tulisan
untuk menampilkan data pada layar

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

Listing program Tulis.java


public class Tulis {
void Tulisan() {
System.out.println("Saya belajar JAVA");
}
}
Listing program
TesTulis.java
public class TesTulis {
public static void main(String [] args) {
Tulis tulisanku = new Tulis();
tulisanku.Tulisan();
}
}

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

1. Dibuat program untuk menampilkan tulisan


2. Nama program : CobaTulis.java
3. Dalam program ada class Tulis yang berisi method Tulisan untuk
menampilkan data di layar
4. Dalam program utama diciptakan obyek baru bernama tulisanku yang berasal
dari class Tulis
5. Kemudian dengan menggunakan obyek tulisanku dipanggil method Tulisan
untuk menampilkan data pada layar

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

Listing program Tulis.java


public class Tulis {
void Tulisan() {
System.out.println("Saya belajar JAVA");
}
}
Listing program
TesTulis.java
public class TesTulis {
public static void main(String [] args) {
Tulis tulisanku = new Tulis();
tulisanku.Tulisan();
}
}

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

Program dimulai dengan mendeklarasikan kelas yang disebut "Lampu".


Kata kunci "public" menunjukkan bahwa kelas ini dapat diakses dari luar kelas.
2. VARIABEL 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

Penutup kelas menandakan akhir dari definisi 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”

1. Ini adalah kelas yang berisi metode tulisan().


2. Metode tulisan() adalah metode yang mencetak teks "Saya belajar Java" ke konsol
menggunakan pernyataan System.out.println().

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

Program dimulai dengan mendeklarasikan kelas yang disebut "Tulis".


Karena kata kunci "public" digunakan, kelas ini dapat diakses dari luar kelas
2. METODE “TULISAN()”

1. Kelas "Tulis" memiliki satu metode yang disebut Tulisan().


Metode ini memiliki tipe kembalian void, yang berarti tidak mengembalikan nilai.
2. Isi dari metode ini adalah satu pernyataan :
System.out.println("Saya belajar JAVA");.
Pernyataan diatas untuk mencetak teks "Saya belajar JAVA" ke konsol/monitor.

3. PENUTUP KELAS

Penutup kelas menandakan akhir dari definisi kelas

1. DEKLARASI KELAS “TESTULIS”

Program dimulai dengan mendeklarasikan kelas yang disebut "TesTulis".


Kata kunci "public" menandakan bahwa kelas ini dapat diakses dari luar kelas
2. METODE “MAIN”

1. Metode main adalah titik awal eksekusi program.


Di dalamnya, kita membuat objek dari kelas "Tulis" yang disebut "tulisanku"
menggunakan pernyataan Tulis tulisanku = new Tulis();.
2. Selanjutnya, kita memanggil metode Tulisan() dari objek "tulisanku" menggunakan
pernyataan tulisanku.Tulisan();. Metode ini akan mencetak teks ke konsol/monitor.

3. PENUTUP “KELASTULIS”

Penutup kelas menandakan akhir dari definisi kelas.

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

1. DEKLARASI KELAS “MOBIL”

Program dimulai dengan mendeklarasikan kelas yang disebut "Mobil"

2. VARIABEL KELAS “MOBIL”

Kelas "Mobil" memiliki tiga variabel, yaitu aktifitas (tipe String), warna (tipe String), dan
kecepatan (tipe int).
3. METODE “CEKKECEPATAN()”

Metode ini digunakan untuk mengecek kecepatan mobil.


Jika kecepatan sama dengan 0, maka mobil dianggap sedang "parkir" / diam.
4. METODE “CEKATRIBUT()”

Metode ini digunakan untuk mencetak atribut-atribut mobil ke konsol/monitor


5. METODE “MAIN”

1. Metode utama (main) adalah titik awal eksekusi program.


2. Dalam metode main, sebuah objek "mobilku" dari kelas "Mobil" dibuat.
3. Nilai atribut kecepatan dan warna diatur untuk objek "mobilku".
4. Metode cekKecepatan() dipanggil untuk menentukan aktifitas berdasarkan kecepatan.
5. Metode cetakAtribut() dipanggil untuk mencetak informasi atribut mobil ke
konsol/monitor.

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.

Hasil keluaran / output dari program ini adalah :


CATATAN :

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

Membuat program pencabangan dengan if dan switch


Dalam bahasa pemrograman Java, pernyataan if digunakan untuk membuat
keputusan atau cabang dalam alur program.
Berikut adalah contoh penggunaan if pada Java :
1) Penggunaan Dasar

Penjelasan :
Program di atas adalah contoh sederhana penggunaan pernyataan if dalam bahasa
pemrograman Java
a) Deklarasi Kelas

Program dimulai dengan deklarasi kelas ContohIf.


Nama kelas harus sesuai dengan nama file (dalam hal ini, ContohIf.java).
b) Metode Utama (main):
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

Sebuah variabel bernama angka dideklarasikan dan diinisialisasi dengan nilai 10


d) Pernyataan if

Pernyataan if digunakan untuk membuat keputusan berdasarkan kondisi tertentu.


Dalam hal ini, kondisinya adalah apakah nilai variabel angka lebih besar dari 5
atau tidak
e) Blok Kode dalam if

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

Penutup metode utama.

Program diatas secara keseluruhan melakukan hal berikut:


1) Mendeklarasikan dan menginisialisasi variabel angka dengan nilai 10.
2) Memeriksa apakah nilai variabel angka lebih besar dari 5.
3) Jika kondisi terpenuhi, program mencetak pesan "Angka lebih besar dari 5" ke
konsol.
Dalam kasus ini, karena nilai angka adalah 10 (yang lebih besar dari 5), maka
pesan tersebut akan dicetak ke konsol saat program dijalankan.

2) Penggunaan if-else

Penjelasan :
Program di atas adalah contoh penggunaan pernyataan if-else dalam bahasa
pemrograman Java.
a) Deklarasi Kelas

Program dimulai dengan deklarasi kelas ContohIfElse.


Nama kelas harus sesuai dengan nama file (dalam hal ini, ContohIfElse.java).
b) Metode Utama (main)

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

Sebuah variabel bernama angka dideklarasikan dan diinisialisasi dengan nilai 3


d) Pernyataan if-else

Pernyataan if digunakan untuk membuat keputusan berdasarkan kondisi tertentu.


Dalam hal ini, kondisinya adalah apakah nilai variabel angka lebih besar dari 5
atau tidak.
e) Blok Kode dalam if

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

Penutup metode utama.


Program ini secara keseluruhan melakukan hal berikut :
a) Mendeklarasikan dan menginisialisasi variabel angka dengan nilai 3.
b) Memeriksa apakah nilai variabel angka lebih besar dari 5.
c) Jika kondisi terpenuhi, program mencetak pesan "Angka lebih besar dari 5" ke
konsol/monitor.
d) Jika kondisi tidak terpenuhi, program mencetak pesan "Angka kurang dari atau
sama dengan 5" ke konsol/monitor.

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.

3) Penggunaan if-else if-else

Penjelasan :
Program di atas adalah contoh penggunaan pernyataan if-else if-else dalam bahasa
pemrograman Java.
a) Deklarasi Kelas

Program dimulai dengan deklarasi kelas ContohIfElseIf. Nama kelas harus


sesuai dengan nama file (dalam hal ini, ContohIfElseIf.java).
b) Metode Utama (main)

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

Sebuah variabel bernama angka dideklarasikan dan diinisialisasi dengan nilai 7


d) Pernyataan if-else if-else

Pernyataan if digunakan untuk membuat keputusan berdasarkan kondisi tertentu.


Dalam hal ini, kondisinya adalah apakah nilai variabel angka lebih besar dari 10
atau tidak.
e) Blok Kode dalam if

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

Penutup metode utama.

Program ini secara keseluruhan melakukan hal berikut :


a) Mendeklarasikan dan menginisialisasi variabel angka dengan nilai 7.
b) Memeriksa tiga kondisi berbeda secara berurutan.
c) Jika kondisi pertama terpenuhi, program mencetak pesan "Angka lebih besar
dari 10".
d) Jika kondisi kedua terpenuhi, program mencetak pesan "Angka lebih besar dari
5 tetapi kurang dari atau sama dengan 10".
e) Jika tidak ada kondisi yang terpenuhi, program mencetak pesan "Angka kurang
dari atau sama dengan 5".

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

Program dimulai dengan deklarasi kelas ContohIfBersarang. Nama kelas harus


sesuai dengan nama file (dalam hal ini, ContohIfBersarang.java).
b) Metode Utama (main)

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

Penutup metode utama.

Program ini melakukan hal berikut:


a) Mendeklarasikan dan menginisialisasi dua variabel, angka1 dan angka2.
b) Memeriksa apakah nilai angka1 lebih besar dari 0.
c) Jika ya, maka memeriksa apakah nilai angka2 lebih besar dari 0.
d) Jika kedua kondisi terpenuhi, program mencetak pesan "Kedua angka positif"
ke konsol.
Dalam kasus ini, karena nilai angka1 dan angka2 keduanya lebih besar dari 0,
pesan "Kedua angka positif" akan dicetak ke konsol saat program dijalankan.
Kesimpulan :
Dari contoh program diatas, if digunakan untuk menentukan apakah suatu kondisi
terpenuhi atau tidak. Jika kondisi terpenuhi, blok kode di dalamnya akan dieksekusi. Jika
tidak, maka program akan melanjutkan ke blok kode setelahnya, atau ke blok else jika
digunakan.

Membuat perulangan dengan for, while, dan do-while


Berikut adalah contoh penggunaan perulangan (for, while, dan do-while) dalam
bahasa pemrograman Java:
1) Penggunaan for

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

Keuntungan Menggunakan Array


1) Optimasi Kode yaitu Itu membuat kode dioptimalkan, kita dapat mengambil atau
mengurutkan data secara efisien.
2) Random access yaitu kita bisa mendapatkan data apa pun yang terletak di posisi
indeks.

Kerugian Menggunakan Array


Ukuran yang terbatas yaitu kita hanya dapat menyimpan ukuran tetap elemen dalam
larik. Ukurannya tidak bertambah saat runtime. Untuk mengatasi masalah ini, framework
kumpulan digunakan di Java yang tumbuh secara otomatis.

Deklarasi, Instansiasi dan Inisialisasi Array pada Java


Saat memproses elemen array, kita sering menggunakan for loop atau foreach loop
karena semua elemen dalam array memiliki tipe yang sama dan ukuran array diketahui.
Berikut adalah contoh lengkap yang menunjukkan cara membuat, menginisialisasi, dan
memproses array

Deklarasi Array di Java


Array sebelum digunakan, kita perlu deklarasi terlebih dahulu.

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 di atas kita menggunakan perulangan for dengan menggunakan


atribut length untuk mendapatkan jumlah elemen array, sehingga perulangan dilakukan
kurang dari jumlah tersebut, karena indeks array dimulai dari 0.

Contoh Program Array Menggunakan Class Scanner


Pada program yang ketiga, kita akan belajar bagaimana penggunaan array di
java dengan menggunakan class scanner untuk menerima inputan dari keyboard.
Catatan :
Scanner merupakan class yang menyediakan fungsi-fungsi untuk mengambil input dari
keyboard. Agar kita bisa menggunakan Scanner, kita perlu mengimpornya ke dalam
kode: import java.util.Scanner;
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 :

Contoh Program Array Dengan Percabangan


Contoh yang terakhir kita menggunakan percabangan if.
Program yang dibuat tentang data nilai mahasiswa.
Pengguna akan memasukan jumlah mahasiswa yang akan diinput, kemudian
memasukan masing-masing nama dan nilai mahasiswa.
Jika nilai mahasiswa dibawah atau sama dengan 50 maka mahasiswa tersebut
dinyatakan statusnya tidak lulus.
Berikut ini contoh programnya :
Output :
Referensi :
Belajar Java: Menggunakan Array untuk Menyimpan Banyak Hal (petanikode.com)
Pembahasan Array Pada Java - MalasNgoding.com
Tutorial Belajar Java: Tipe Data Array Bahasa Pemrograman Java | Duniailkom
OVERLOADING DAN OVERRIDING

Overloading dan overriding adalah dua konsep dasar dalam pemrograman


berorientasi objek (OOP) yang digunakan dalam bahasa pemrograman Java.

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

Kelas Calculator dideklarasikan sebagai kelas public

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.

6) Pemanggilan Metode Pertama

Memanggil metode pertama dari objek calculator dengan dua parameter bertipe int
dan mencetak hasilnya ke konsol/monitor.

7) Pemanggilan Metode Kedua

Memanggil metode kedua dari objek calculator dengan tiga parameter bertipe int
dan mencetak hasilnya ke konsol/monitor.

8) Pemanggilan Metode Ketiga

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 Animal memiliki metode makeSound yang mencetak suara umum

2) Kelas Anak Pertama (Cat)

Kelas Cat adalah kelas anak dari Animal.


Ia melakukan overriding terhadap metode makeSound dari kelas Animal dengan
mengganti implementasinya untuk mencetak "Meow".

3) Kelas Anak Kedua (Dog)


Kelas Dog juga adalah kelas anak dari Animal.
Ia melakukan overriding terhadap metode makeSound dari kelas Animal dengan
mengganti implementasinya untuk mencetak "Woof".

4) Kelas Uji (AnimalTest):

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".

Program diatas menggambarkan konsep overriding di mana kelas anak dapat


menyediakan implementasi yang berbeda untuk metode yang sudah
dideklarasikan di kelas induk. Saat objek dipanggil, metode yang dijalankan adalah
metode dari kelas aktual objek tersebut, bukan dari kelas tipe data referensi yang
digunakan untuk membuat objek.
LOCAL VARIABLES DAN VARIABLE SCOPE

Local Variables (Variabel Lokal)


Variabel lokal adalah variabel yang dideklarasikan di dalam suatu metode, blok, atau
konstruktor dan hanya dapat diakses di dalam ruang lingkup tersebut. Ini berarti variabel
lokal hanya berlaku atau memiliki "lingkup" dalam blok kode di mana mereka
dideklarasikan.

Contoh dari program Java yang Anda berikan mengandung variabel lokal. Pada metode
f() dalam kelas X:

1) Variabel j dan k adalah contoh variabel lokal.


2) Variabel j hanya dapat diakses di dalam loop for.
3) Variabel k hanya dapat diakses di dalam blok loop for.
Variabel lokal memiliki keuntungan karena memungkinkan penataan kode yang lebih
bersih dan mencegah konflik nama variabel antar metode atau blok yang berbeda.

Variable Scope (Lingkup Variabel)


Lingkup variabel adalah wilayah atau bagian kode di mana suatu variabel dapat diakses
atau digunakan. Lingkup variabel lokal terbatas pada blok kode di mana mereka
dideklarasikan.
Ada beberapa jenis lingkup variabel:
1) Block Scope (Lingkup Blok):
Variabel lokal hanya dapat diakses di dalam blok di mana mereka dideklarasikan.
Contoh: variabel j dan k dalam loop for.

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.

Contoh Penanganan Variabel Lokal dan Lingkup:

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 :

✓ Kelas variablescope adalah kelas utama yang memiliki metode main.


✓ Di dalam metode main :
▪ Dibuat objek dari kelas X dengan X x = new X();.
▪ Metode f() dari objek x dipanggil dengan x.f();.

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

Di dalam bahasa pemrograman Java, package digunakan untuk mengorganisir


dan mengelompokkan kelas-kelas (class) dan antarmuka (interface) ke dalam
namespace atau ruang nama tertentu.
Penggunaan package memungkinkan programer untuk menghindari konflik nama
kelas, memudahkan pemeliharaan kode, dan meningkatkan struktur proyek.

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

4) Compile dan Jalankan


✓ Compile kelas-kelas tersebut dari dalam direktori myKampusProject:

✓ Jalankan program dari direktori myKampusProject:


5) Output yang diharapkan

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)

✓ Inheritance atau Pewarisan atau Penurunan adalah konsep pemrograman dimana


sebuah class dapat ‘menurunkan’ property dan method yang dimilikinya kepada
orang lain.
✓ Konsep inheritance digunakan untuk memanfaatkan fitur ‘code reuse’ untuk
menghindari duplikasi kode program.
✓ Konsep inheritance membuat sebuah struktur atau ‘hierarchy’ class dalam kode
program. Class yang akan ‘diturunkan’ bisa disebut sebagai class induk (parent
class), super class, atau base class. Sedangkan class yang ‘menerima penurunan’
bisa disebut sebagai class anak (child class), sub class, derived class atauheir class.
✓ Tidak semua property dan method dari class induk akan diturunkan.
Property dan method dengan hak akses private, tidak akan diturunkan kepada class
anak. Hanya property dan method dengan hak akses protected dan public saja yang
bisa diakses dari class anak.
✓ Suatu class yang mempunyai class turunan dinamakan parent class atau base class.
Sedangkan class turunan itu sendiri seringkali disebut subclass atau child class.
Suatu subclass dapat mewarisi apa-apa yang dipunyai oleh parent class.
✓ Karena suatu subclass dapat mewarisi apa apa yang dipunyai oleh parent class-nya,
maka member dari suatu subclass adalah terdiri dari apa-apa yang ia punyai dan juga
apa-apa yang ia warisi dari class parent-nya.
✓ Kesimpulannya, boleh dikatakan bahwa suatu subclass adalah tidak lain hanya
memperluas (extend) parent class-nya.

✓ 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:

1) Overloading (Pengaturan Ulang):


Overloading terjadi ketika sebuah kelas memiliki beberapa metode dengan nama
yang sama tetapi berbeda dalam jumlah atau tipe parameter.

2) Overriding (Penggantian Metode):


Overriding terjadi ketika sebuah subclass menyediakan implementasi yang berbeda
untuk metode yang telah dideklarasikan oleh superclassnya.
Dalam contoh terakhir, meskipun kita menggunakan tipe data Animal untuk membuat
objek, JVM secara dinamis memanggil metode yang sesuai dengan objek yang
sebenarnya berada di dalamnya (objek Dog atau Cat)
POLIMORFISME

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 :

Berikut Penjelasan program diatas :


1) Class Dasar Manusia:

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.

3) Class Turunan Wanita:

Class ini juga adalah subclass dari Manusia dan meng-override metode bersuara() untuk
mencetak "Halo, saya seorang wanita.".

4) Class Turunan Anak:

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.

Anda mungkin juga menyukai