Anda di halaman 1dari 259

MODUL PENDAHULUAN KURSUS

JAVA PROGRAMMING FOR


BEGINNER

Versi 1.0

Tahun Penyusunan 2014

Laboratorium Pengembangan Komputerisasi


UNIVERSITAS GUNADARMA
KATA PENGANTAR

Bahasa JAVA adalah bahasa pemrograman yang telah digunakan secara luas di berbagai
bidang aplikasi, seperti aplikasi desktop, aplikasi web, aplikasi mobile, aplikasi untuk robot,
bahkan smartcard. Mahasiswa yang memiliki penguasaan bahasa JAVA yang baik, tentu akan
memberikan nilai tambah tersendiri. Namun untuk menguasainya setiap mahasiswa perlu
mempelajarinya dengan cermat, karena karakteristiknya yang unik. Selain itu tentu diperlukan
banyak latihan, latihan, dan latihan.
Modul ini membahas tentang pengenalan dasar pemrograman bahasa JAVA. Pembahasan
pada modul ini diawali dengan materi mengenai konsep pemrograman berorientasi objek, yang
merupakan salah satu konsep kunci untuk dapat menggunakan bahasa ini secara optimal. Setelah
itu diperkenalkan materi lain untuk dapat membuat aplikasi berbasis teks maupun berbasis
window. Modul ini merupakan seri pertama dari 3 seri yang direncanakan.
Semoga dengan mempelajari modul ini, mahasiswa dapat menguasai dasar-dasar
pemrograman bahasa JAVA, agar berikutnya dapat mengembangkan kemampuan pemrograman
yang baik.
Kritik dan saran senantiasa terbuka untuk ditujukan kepada kami. Semoga dapat menjadi
acuan dalam menyempurnakan modul ini di masa mendatang. Dan untuk edisi pertama, modul
pendahuluan ini disusun oleh Lembaga Pengembangan Komputerisasi Universitas Gunadarma
dengan bantuan tim yang bekerja secara penuh, yaitu H. Widjadi, Ricky Agus T., Ihsan Jatnika,
Arick Anjasmara, Elyna Fazriyati, Rhama Alamanda, Surahma Jaya.

Jakarta, Oktober 2014

Lembaga Pengembangan Komputerisasi


Universitas Gunadarma

Page 2
DAFTAR ISI

Daftar isi ......................................................................................................................... 3

Pertemuan 1 : Class, Object, Method pada JAVA ........................................................... 4

Pertemuan 2 : Overloading Method, Constructor Dan Access Modifier ........................ 13

Pertemuan 3 : Inheritance, Polimorfisme, Interface ....................................................... 20

Pertemuan 4 : Penanganan Eksepsi................................................................................. 31

Pertemuan 5 : Bekerja Dengan Aplikasi Teks ................................................................ 38

Pertemuan 6 : Thread dan Multithreading ...................................................................... 45

Pertemuan 7 : Pemrograman Windows 1........................................................................ 51

Pertemuan 8 : Pemrograman Windows 2........................................................................ 68

Daftar Pustaka ................................................................................................................ 77

Page 3
Pertemuan 1

Class, Object, Method Pada Java

Objektif:

1. Mahasiswa dapat mengetahui tentang paradigma pemrograman berorientasi objek


2. Mahasiswa dapat mengetahui definisi dari class, object, dan method pada Java
3. Mahasiswa dapat memahami cara pendeklarasian dari class, object, dan method pada
Java
4. Mahasiswa dapat membuat program sederhana dengan menggunakan class, object, dan
method pada Java

Page 4
1.1 Paradigma Pemrograman Berorientasi Objek
Dalam pemrograman tradisional atau prosedural, seluruh data dan kode digabung
menjadi satu bagian dalam satu program. Untuk membuat program-program sederhana,
penggunaan jenis pemrograman procedural tidak menjadi masalah. Namun masalah akan muncul
ketika program yang dibuat berkembang lebih besar dan kompleks. Hal inilah yang menjadi awal
dibuatnya model pemrograman berorientasi objek.
Pada pemrograman berorientasi objek, komponen-komponen penyusun program secara
konseptual akan dipecah menjadi bagian-bagian tersendiri yang disebut dengan objek.
Dalam pemrograman berorientasi objek, setiap objek akan memiliki data berupa variable
maupun konstanta, dan memiliki method berupa fungsi. Sehingga objek dapat didefinisikan
sebagai suatu entitas yang memiliki data dan method.

Gambar 1.1. Perbedaan pemrograman procedural dan berorientasi objek

Page 5
Beberapa keuntungan yang didapat dengan menggunakan pemrograman berorientasi
objek adalah :

 Objek-objeknya dapat digunakan ulang (reuseable) untuk program-program lain


 Programnya lebih terstruktur dan lebih mudah untuk dikembangkan
 Bersifat natural karena perilaku dan sifat-sifat objek didalam program akan
disesuaikan dengan objek-objek nyata yang ada di alam sekitar kita.

1.2 Memahami Kelas dan Objek

Nilai Keterangan
South Letak di bawah
West Letak di kiri
North Letak di atas
East Letak di kanan
Gambar 1.2. Hewan sebagai contoh sebuah objek

Hewan adalah suatu objek yang memiliki data-data berupa nama jenis hewan, jenis
kelamin hewan, berat badan, jenis makanan dan yang lainnya. Sedangkan untuk methodnya,
hewan memiliki cara berkembangbiak, cara mencari makanan, cara bertahan hidup dan
sebagainya. Contoh lainnya adalah manusia sebagai objek dengan data-data berupa nama, jenis
kelamin, tinggi badan, berat badan, usia dan yang lainnya. Untuk methodnya manusia memiliki
cara bicara, cara berjalan, cara tertawa dan yang lainnya.
Objek dalam pemrograman berorientasi objek diabstraksikan menjadi sebuah kelas. Kelas
dapat didefinisikan sebagai blueprint atau kerangka yang mendefinisikan variable-variabel dan
method umum dari sebuah objek tertentu. Karena kelas bersifat abstrak, ketika membuat sebuah
kelas baru maka kita telah mendefinisikan tipe data baru. Sekali didefinisikan, tipe data baru
tersebut dapat digunakan untuk membuat suatu objek dari tipe tersebut. Dengan kata lain, kelas
merupakan pola (template) untuk pembuatan objek, dan objek adalah wujud nyata (instance) dari
sebuah kelas. Sebagai contoh, sebuah kelas manusia memiliki instance berupa nama-nama atau
wujud dari manusia, seperti Udin, Kabayan, Iteung dan yang lainnya.

1.3 Modifier
Modifier adalah sifat yang dimiliki oleh setiap atribut, method maupun kelas dalam java.
Modifier akses adalah modifier yang selalu digunakan. Modifier akses terdiri dari private,

Page 6
default, protected, public. Selain itu ada pula modifier final, static, abstract, synchronized, native,
dan storage (transient, volatile).

1.4 Deklarasi Kelas


Dalam pemrograman java, kelas didefinisikan dengan kata kunci class. Untuk
menyimpan file, simpan dengan nama yang sama seperti nama kelas yang digunakan dalam file
tersebut. Kemudian didalam java ada aturan tersendiri untuk pemberian nama class, yaitu harus
diawali dengan huruf besar untuk membedakan antara class dan objek.

Berikut adalah bentuk umum dari pendeklarasian class pada java :

[modifier] class nama_class {

[deklarasi_atribut]
[deklarasi_konstruktor]
[deklarasi_metode]
}

Contoh pendeklarasian class :

class PersegiPanjang{

//area penulisan kode program selanjutnya

Kode diatas menjelaskan bahwa kita telah mendefinisikan sebuah tipe data baru dengan nama
PersegiPanjang yang memiliki data-data berupa panjang dan lebar.

1.5 Deklarasi Atribut


Atribut merupakan karateristik yang dimiliki oleh objek. Deklarasi atribut dibutuhkan
kelas untuk membentuk objek dan diletakkan didalam class body atau diluar method.
Berikut adalah pendeklarasian atribut pada java :
- Atribut tanpa inisialisasi :

[modifier] tipedata nama_atribut ;

- Atribut dengan inisialisasi :

[modifier] tipedata nama_atribut = nilai;

Page 7
Contoh pendeklarasian atribut :
- Atribut tanpa inisialisasi :

private String nama;


public String alamat;

- Atribut dengan inisialisasi :

String warna = “hijau”;


Final int lebar = 15;

1.6 Deklarasi Method


Method merupakan tingkah laku yang dimiliki oleh objek. Method digunakan untuk
memodularisasi program pemisah satu tugas menjadi satu unit tersendiri. Didalam java terdapat
dua buah method, yaitu :
a. Fungsi. Merupakan method yang memiliki nilai balik jika method tersebut dipanggil. Cara
pembuatan sebuah fungsi adalah dengan cara menentukan nilai baliknya, kemudian nama
methodnya.
b. Prosedur. Merupakan method yang tidak mengembalikan nilai. Cara pembuatan prosedur
sama dengan fungsi, namun bedanya adalah pada prosedur menggunakan kata kunci void.

Berikut adalah pendeklarasian method pada java :

- Method fungsi tanpa parameter :

[modifier] tipe_nilaiKembali nama_method () {


Method body;

}
- Method fungsi menggunakan parameter :

[modifier] tipe_nilaiKembali nama_method (parameter input) {


Method body;

}

Page 8
- Method prosedur tanpa parameter :

void nama_method () {
Method body;

}
- Method prosedur menggunakan parameter :

void nama_method (parameter input) {


Method body;

}

Contoh pendeklarasian method :

- Method fungsi tanpa parameter :

public int LuasPersegi() {


int luas = sisi * sisi;
return luas;
}
}

- Method fungsi menggunakan parameter :

public int LuasPersegi(int sisi) {


return sisi * sisi;
}

- Method prosedur tanpa parameter :

void LuasPersegi() {
System.out.println(“Luas Persegi = ” + (sisi *
sisi));
}

Page 9
- Method prosedur menggunakan parameter :

void LuasPersegi(int s) {
sisi = s;
}

1.6.1 Accessor Method


Ada kalanya object lain ingin dapat mengakses data private, untuk itu digunakanlah
accessor method. Accessor method digunakan untuk membaca nilai variable pada class, baik
berupa instance maupun static.

Berikut penulisan accessor method :

get namaInstanceVariabel

Contoh pendeklarasian accessor method :

public class Persegi{


private int sisi;

public int getSisi(){


return sisi;
}

1.6.2 Mutator Method


Mutator method digunakan untuk memberi atau mengubah variable dalam class oleh
object lain.

Berikut penulisan mutator method :

set namaInstanceVariabel

Page 10
Contoh pendeklarasian mutator method :

public class Persegi{


private int sisi;

public void setSisi(int temp){


sisi = temp;
}

1.7 Object
Object adalah instance atau representasi nyata dari sebuah kelas. Sebuah kelas bisa
memiliki banyak object, setiap object mempunyai sifat yang sama persisi seperti yang
didefinisikan dalam kelas tersebut. Untuk pemberian nama sebuah object diawali dengan huruf
kecil.

Berikut adalah pendeklarasian object pada java :

nama_class nama_object = new nama_constructor();

nama_class nama_object;

nama_object = new nama_constructor();

Contoh pendeklarasian object :

Kotak k = new Kotak();

Kotak k;
k = new Kotak();

1.8 Kata kunci this


Pada beberapa kasus tertentu, terkadang method perlu mengacu ke object yang
memilikinya. Untuk itu java menyediakan kata kunci this yang merupakan referensi ke object
yang sedang aktif. This digunakan didalam method untuk mewakili nama kelas bersangkutan.

Berikut adalah pendeklarasian kata kunci this :

Page 11
this.namaInstanceVariabel

Contoh kode java yang tidak menggunakan kata kunci this :

Class PersegiPanjang{
double panjang, lebar;

PersegiPanjang(double p, double l){


panjang = p;
lebar = l;
}
}

Contoh kode java yang menggunakan kata kunci this :

Class PersegiPanjang{
double panjang, lebar;

PersegiPanjang(double p, double l){


this.panjang = p;
this.lebar = l;
}
}

Java tidak mengizinkan pendeklarasian variable dengan nama yang sama didalam satu
blok tertentu. Disisi lain, java memperbolehkan untuk mendeklarasikan nama parameter yang
sama dengan nama data yang terdapat didalam kelas. Namun nama variable local secara otomatis
akan menimpa nama data yang terdapat didalam kelas yang bersangkutan. Untuk menghindari
penimpaan variable tersebut, maka digunakanlah kata kunci this. Akan tetapi programmer akan
menghindari penggunaan kata kunci this karena lebih membingungkan, sehingga untuk
kesamaan nama parameter dan data didalam kelas juga akan dihindari.

Page 12
Pertemuan 2

Overloading Method, Constructor Dan


Access Modifier

Objektif:

1. Mahasiswa dapat mengetahui definisi dari overloading method, constructor dan access
modifier pada Java
2. Mahasiswa dapat memahami cara pendeklarasian dari overloading method, constructor
dan access modifier pada Java
3. Mahasiswa dapat membuat program sederhana mengenai overloading method,
constructor dan memanfaatkan access modifier pada Java

Page 13
2.1 Overloading Method
Dalam satu class dapat mendefinisikan lebih dari satu method dengan nama yang sama
tetapi parameter yang dideklarasikan harus berbeda baik itu jumlahnya ataupun tipe
parameternya.

Jenis-jenis method overloading:

1. Jumlah parameter beda, tipe beda


2. Jumlah parameter sama, tipe beda
3. Jumlah parameter beda, tipe sama

Syarat-syarat overloading:

1. Dalam sebuah kelas diperbolehkan lebih dari satu method dengan nama yang sama dengn
catatan method dapat dibedakan berdasarkan banyaknya parameter atau tipe data parameter.
2. Overloading tidak bisa dilakukan dengan membedakan nilai kembaliannya.
3. Overloading juga bisa dilakukan pada sub kelasnya.

Contoh method yang mengalami overloading:

Method yang di Overload :

myMethod(String s, int i, float f)

Method yang mengOverload (LEGAL)


Jumlah arugument berbeda
myMethod()

Jumlah arugument berbeda


myMethod(int i)

Jumlah arugument berbeda, tapi


myMethod(String s1, String s2, String s3) urut-urutan tipe data berbeda

Jumlah arugument berbeda, tapi


myMethod(String s, float f, int i) urut-urutan tipe data berbeda

Method yang mengoverload (ILEGAL)


Jumlah argument sama, urut-
myMethod(String s, int i, float f) urutan tipe data sama.

Page 14
Jumlah argument sama, urut-
myMethod(String x, int y, float z) urutan tipe data sama.
Yang haru diperhatikan dari
contoh ini adalah, nama variabel
yang berbada tidak lantas
menyebabkan argument list
menjadi berbeda.

Overloading method terjadi pada objek yang sama. Ketika overloading method dipanggil, Java
mencari kesamaan antara argumen yang digunakan untuk memanggil method dan parameter dari
method. tetapi, kesamaan ini tidak mutlak karena pada Java ada otomatisasi konversi tipe yang
berbeda.

Contoh overloading method secara keseluruhan pada program java :

class OverloadMetode
{
//konversi tujuan bertipe integer
void test(int a)
{
System.out.println("Hasil konversi byte ke integer :"+a);
}
}

class OverloadKonversi
{
public static void main(String args[])
{
OverloadMetode ob = new OverloadMetode();
//variabel asal yang akan dikonversi bertipe byte
byte i=88;
ob.test(i);//memanggil test(integer)
}
}

Konversi otomatis pada java seperti program diatas, hanya dapat dilakukan jika kedua aturan ini
dipenuhi:
1. Kedua tipe data (data asal dan tujuan) memiliki kompatibilitas(compatible).
2. Tipe tujuan mempunyai range lebih besar daripada tipe asal.

Selain itu Java juga mengerjakan konversi secara otomatis ketika menyimpan konstanta integer
literal menjadi variable bertipe byte, short, atau long.

Page 15
2.2 Deklarasi Constructor
Constructor adalah method khusus yang didefinisikan didalam kelas dan akan dipanggil
secara otomatis setiap kali terjadi instansiasi objek. Jika dalam suatu kelas kontruktor tidak
didefinisikan, maka secara otomatis Java akan membuat sebuah constructor, yaitu null
constructor. Constructor tersebut dinamakan sebagai default constructor.
Namun jika kita mendefiniskan sebuah constructor baru untuk kelas yang dibuat, maka
default constructor sudah tidak berfugsi atau tidak digunakan lagi.

Ciri-ciri default constructor:

1. Dibuat secara otomatis saat class dikompilasi.


2. Dibuat secara otomatis jika class yang dikompilasi tidak mempunyai constructor sama
sekali.
3. Tidak memiliki parameter formal.

Contoh default constructor :

public StudentRecord()
{
//area penulisan kode
}

Sifat-sifat constructor:
1. Nama constructor sama dengan nama class
2. Tidak memiliki tipe data termasuk void
3. Tidak memiliki return value.
4. Dieksekusi ketika terjadi instansiasi.
5. Dapat mempunyai akses modifier, biasanya public namun dapat berupa private
6. Tidak dapat dipanggil secara langsung, namun harus dipanggil dengan menggunakan
operator new pada pembentukan sebuah class.

Berikut cara pendeklarasian constructor :

- Pendeklarasian tanpa menggunakan parameter

[modifier] nama_class ()
{
//statement
}

- Pendeklarasian menggunakan parameter

Page 16
[modifier] nama_class (parameter)
{
//statement
}
2.2.1 Overloading Constructor
Sama halnya dengan method, constructor dapat melakukan overloading. Bedanya
overloading constructor terjadi pada objek yang berbeda-beda, nilai argument berbeda, sehingga
method bisa lebih dari satu. Penerapan overloading pada kelas Java akan menjadi suatu norma
tanpa perkecualian.

Berikut contoh overloading pada constructor:

class Kotak {
double panjang;
double lebar;
double tinggi;

// Mendefinisikan constructor dengan satu parameter


Kotak(double sisi) {
panjang = lebar = tinggi = sisi;
}

// Mendefinisikan constructor dengan tiga parameter


Kotak(double p, double l, double t) {
panjang = p;
lebar = l;
tinggi = t;
}

double hitungVolume() {
return (panjang * lebar * tinggi);
}
}

class Over {
public static void main(String[] args) {

Kotak k1, k2;

k1 = new Kotak(10);
k2 = new Kotak(4, 3, 2);

//Menampilkan volume dari masing-masing objek Kotak


System.out.println("Volume k1 = " + k1.hitungVolume());
System.out.println("Volume k2 = " + k2.hitungVolume());
}
}

Page 17
Pada kode program diatas didefinisikan ada dua buah constructor dengan nama Kotak.
Constructor pertama memiliki satu buah parameter dimana parameter sisi sama dengan nilai
panjang, lebar dan tinggi. Constructor kedua memiliki tiga buah parameter dengan nilai panjang,
lebar dan tinggi yang berbeda.

2.3 Access Modifier

Access modifier merupakan keyword yang digunakan untuk menentukan spesifikasi


tingkat akses suatu vaiable atau method (anggota kelas). Pengaksesan yang dimaksud bisa
berupa pengaksesan dalam kelas yang sama, turunan maupun dari luar kelas di mana variable
dan method dideklarasikan.
Berikut adalah jenis-jenis access modifier :

No. Access Modifier Pada class dan Interface Pada Method & Variable

Diwarisi oleh subkelas dipaket


Dapat diakses oleh yang
1. Default yang sama, dapat diakses oleh
sepaket.
method-method yang sepaket.
Diwarisi oleh subkelasnya, dapat
2. Public Dapat diakses dimanapun
diakses dimanapun.
Diwarisi oleh subkelasnya, dapat
3. Protected Tidak bisa diterapkan diakses oleh method-method
yang sepaket.
Tidak dapat diakses dimanapun
4. private Tidak bisa diterapkan kecuali oleh method-method
yang ada dalam kelas itu sendiri.

1. Default

Access Modifier ini hanya menspesifikasikan kelas-kelas (classes) di paket yang sama
yang bisa mengakses variable dan method suatu kelas. Anggota kelas dengan default
access bisa melihat kelas lain dipaket yang sama. Tidak ada keyword khusus untuk
mendeklarasikan modifier default access. Sehingga apabila tidak ada access modifier
pada pendeklarasian tersebut, berarti yang dimaksud adalah default access.

Page 18
2. Public

Suatu anggota kelas (class member) dideklarasikan sebagai public, maka anggota tersebut
akan bisa digunakan oleh siapa saja, yaitu baik oleh kelas yang sama, kelas lain maupun
lingkungan luar kelas. Sehingga anggota kelas (class member) yang dideklarasikan
sebagai public akan bisa diakses oleh sembarang object lain.

3. Protected

Access modifier protected menspesifikasikan atau menentukan anggota kelas (class


member) yang hanya bisa diakses oleh method-methodyang ada di dalam kelas yang
sama dan juga dapat diakses oleh subclass (kelas turunan) dari kelas tersebut.

4. Private

Access modifier private merupakan tingkatan akses yang sangat terbatas. Kemudian
seperti modifier-modifier lain, modifier private menspesifikasikan anggota kelas (class
member) yang hanya bisa diakses oleh kelas dimana anggota-anggota kelas tersebut
dideklarasikan. Keadaan ini mengakibatkan bahwa tidak ada kelas lain yang bisa
mengakses anggota kelas private, sekaligus termasuk subkelas-subkelas (subclassess)-
nya. Access modifier private adalah yang paling terbatas, menspesifikasikan anggota
kelas(variable dan method) hanya dapat diakses oleh kelas dimana anggota itu
didefinisikan.

Page 19
Pertemuan 3

Inheritance, Polimorfisme, Interface

Objektif :

1. Mahasiswa Dapat Mampu Menerapkan Konsep Inheritance, Overloading, dan Overriding


dalam pemrograman dengan java
2. Mahasiswa Dapat Mampu Membuat Method Polimorfisme Untuk Implementasi Listing
Kode Yang Berbeda Sesuai Dengan Behavior Masing-masing Kelas
3. Mahasiswa Dapat Mampu Membuat Variabel Instans Sebagai Penentu Akses Pada Kelas
Public, Kelas Private, dan Protected
4. Mahasiswa Dapat Mampu Mengimplementasikan Interface Pada Java

Page 20
3.1 Inheritance

Inheritance merupakan salah satu fitur inti dari pemrograman berorientasi objek karena
mekanisme ini memampukan penciptaan klasifikasi hirarkis. Dengan Inheritance, Anda dapat
menciptakan kelas umum yang mendefinisikan sifat/watak umum. Kelas ini kemudian dapat
diwarisi oleh kelas-kelas lain, yang merupakan kelas-kelas yang lebih spesifik, dengan
menambahkan hal-hal unik. Dalam terminologi java, sebuah kelas yang diwarisi dikenal dengan
superkelas. Kelas yang mewarisi dikenal dengan subkelas. Oleh karena itu, subkelas merupakan
versi terspesialisasi dari superkelas. Subkelas mewarisi semua variabel dan metode instans yang
didefinisikan oleh superkelas. Pada konsep Inheritance ada beberapa istilah yang perlu diketahui,
yaitu :
 Sub class, digunakan untuk menunjukkan class anak atau turunan secara hirarkis dari super
class
 Super class, digunakan untuk menunjukkan class induk secara hirarkis dari sub class (class
anak)
 Extends, digunakan untuk menunjukkan, bahwa suatu class merupakan turunan dari class
lain. Misal A extends B, berarti class A adalah turunan dari class B. A merupakan subclass,
sedangkan B merupakan superclass.
 Super, digunakan untuk memanggil konstruktor dari super class atau memanggil variable
yang mengacu pada super class. Misal super(x,y,z), berarti atribut x,y,z diambil dari atribut
pada class induk

Cara Inheritance Kelas


Kelas turunan secara prinsip dapat dibuat dengan menggunakan bentuk :

Class KelasTurunan extends KelasDasar{


TubuhKelas
}

Pemanggilan Constructor Super Kelas


Superkelas tidak mengandung konstruktor. Untuk itu digunakan kata kunci super.
Super (nama, nim)
Pemanggilan konstruktor kelas dasar harus memenuhi persyaratan berikut :
 Pemanggilan dengan super seperti di atas hanya bisa dilakukan pada konstruktor.
 Pemanggilan konstruktor superkelas harus berkedudukan sebagai pernyataan pertama
dalam konstruktor.

Overriding
Overriding adalah suatu cara untuk mendefinisikan ulang method yang ada pada class induk
apabila class anak menginginkan adanya informasi yang lain. Overriding dilakukan dengan cara
menulis ulang method yang ada pada class induk dengan syarat bahwa nama dan parameter
Page 21
fungsi tersebut harus sama (tidak boleh diubah). Meskipun fungsi telah ditulis ulang oleh class
anak, fungsi yang asli pada class induk masih dapat dipanggil di class anak dengan
menggunakan class super.

Overloading
Overloading fungsi adalah penulisan beberapa fungsi (dua atau lebih) yang memiliki nama yang
sama. Pada bahasan overloading dikenal istilah signature. Signature sebuah fungsi adalah
parameter lengkap dengan tipe datanya yang terdapat dalam fungsi tersebut.Misal terdapat
fungsi:
public int jumlahMahasiswa (int laki2, int perempuan, String kelas);

maka signature dari fungsi tersebut adalah (int, int, String). Suatu fungsi dikatakan
dioverloadmanakala terdapat beberapa fungsi dengan nama yang sama namun memiliki signature
yang berbeda-beda, sebagai contoh

public void infoMahasiswa (int laki2, int perempuan,


String
kelas)
{
...
}
public void infoMahasiswa (int mhsLama, int mhsBaru, int
mhsCuti, int angkatan)
{
...
}

Contoh Kasus Inheritance

Menunjukkan hirarki kelas dosen., memiliki turunan berupa kelas rektor, kelas dekan dan kelas
kalab. class induk (class dosen) memiliki atribut nama, nik dan jurusan. Method yang dimiliki
oleh class dosen adalah view(). Class turunan dari class dosen ada tiga class. Pada class rektor,

Page 22
terdapat tambahan atribut berupa th_mulai dan jabatan_ke, serta method viewRektor(). Pada
class dekan terdapat tambahan atribut fakultas, dan method viewDekan(). Pada class kalab
terdapat tambahan atribut laboratorium, dan method viewKalab().

public Rektor

}}
}}

Page 23
Metode Keterangan private
Kalab

getText() Untuk memperoleh teks pada label


super (namaX,nikX,jurX);

setText() Untuk mengubah teks pada label


public void viewkalab() {

SetIcon(Icon
Untuk mengubah gambar pada ikon
gambar)
Metode Keterangan
Mengganti teks pada JTextArea dimulai dari
replaceRange(String str , int posisi awal hingga sebelum posisi akhir
awal , int akhir ) dengan string str . Perlu diketahui, posisi teks
int
berbasis nol
Menghasilkan nilai bertipe int yang
getRows()
menyatakan jumlah baris dalam JTextArea
Membuat jumlah basris pada JTextArea
setRows(int n )
sebesar n baris
getText() Menghsailkan teks pada JTextArea
setText(String teks ) Mengubah isi JTextArea dengan teks
Jika argument bernilai true maka pelipatan
SetWrapStylWord(boolean kata ) akan didasarkan akan didasarkan pada satu
kata
Menambahkan string di akhir objek
append(String st )
JTextArea

Page 24
Metode Keterangan
Mengganti teks pada TextArea dimulai dari posisi
replaceRange(String str,
awal hingga sebelum posisi akhir dengan string str.
int awal, int akhir )
Perlu diketahui, posisi teks berbasis nol
Menghasilkan nilai bertipe int yang menyatakan
getRows()
jumlah baris dalam TextArea
Membuat jumlah baris pada TextArea sebesar n
setRows(int n )
baris
Menghasilkan nilai bertipe int yang menyatakan
getColumns()
jumlah kolom dalam TextField.
Menghasilkan nilai bertipe int yang menyatakan
getColumns()
jumlah kolom dalam TextField.
Membuat jumlah kolom pada TextArea sebesar n
setColumns(int n)
kolom
setText(String teks ) Mengubah isi TextArea dengan teks

3.2 Polimorfisme

Polimorfisme adalah kemampuan mengungkap suatu hal yang berbeda melalui satu cara yang
sama. Apabila mempunyai objek yang bertipe superkelas, variable objek ini bisa diisi dengan
objek superkelas ataupun objek subkelas tanpa perlu melakukan perubahan tipe.
Pada polimorfisme kondisi yang harus terpenuhi supaya fungsi dapat dijalankan yaitu:
1. Semua kelas diturunkan dari suatu kelas yang sama
2. Method yang dipanggil harus melalui variabel dari super class.
3. Method yang dipanggil juga harus merupakan method yang ada pada super class.
4. Signature method harus sama baik yang ada pada super class maupun di subclass.
5. Method access attribute pada subclass tidak boleh lebih terbatas daripada yang ada
pada super class.

Page 25
Page 26
Polimorfisme untuk alat-alat transportasi

Pada program utama dilakukan pemanggilan terhadap ketiga class tersebut, masing-masing
dengan parameter yang bersesuaian

3.3 Interface
Interface adalah class yang hanya mengandung deklarasi method tanpa memiliki implementasi
dan semua property yang dimilikinya bersifat final. Interface mirip dengan class abstrak, tetapi
interface tidak terikat dengan class hierarki.

Page 27
Berikut ini adalah aturan yang harus kita ingat tentang pendeklarasian interface:
1. Modifier yang digunakan hanya public atau tidak sama sekali. Jika tidak menggunakan
modifier maka interface tersebut hanya dapat diakses dalam package yang sama.
2. Semua variabel yang dideklarasikan dalam interface secara otomatis adalah static final.
Karena itu waktu pendeklarasian harus diberikan nilai.
3. Semua method adalah abstrak. Bedanya dengan class abstrak adalah kita tidak perlu
menuliskan keyword abstract pada saat mendeklarasikan method dalam interface.
4. Kita dapat mengimplementasikan lebih dari satu interface (multiple inheritance) dengan
memisahkan nama dari setiap interface dengan tanda koma.
5. Dapat terjadi saat kita mengimplementasikan lebih dari satu interface ternyata interface –
interface tersebut memiliki method yang sama. Dalam hal ini method yang akan
diimplementasi adalah method yang berada pada posisi pertama.
6. Semua method yang diimplemetasikan harus public.
7. Jika kita tidak mengimplementasikan semua method yang ada pada interface, maka class
tersebut harus dideklarasikan sebagai abstract class.

Untuk lebih jelasnya kita akan mengambil contoh pada dunia nyata. Misalnya pembuat
remote control dan pembuat TV. Seorang pembuat remote control tentunya tidak perlu tahu merk
TV dan siapa yang membuat TV tersebut untuk dikontrol menggunakan remote control tersebut.
Yang perlu diketahui adalah Interface apa yang digunakan oleh TV tersebut agar dapat dikontrol.
Demikian pulu si pembuat TV tidak perlu tahu bagaimana remote control tersebut dibuat.
Pembuat TV hanya perlu tahu interface apa yang akan digunakan agar Tvnya dapat dikontrol
oleh remote control tersebut. Perhatikan implementasinya dalam kode berikut ini.

Page 28
public class TVSamsung implements Control{
String[] channel = {"RCTI","SCTV","INDOSIAR","ANTV","TV7"};

public void pindahChannel(int channel) {


System.out.println("Pindah channel pada TV Samsung ke "+ this.channel[channel]);
}
public void perbesarVolume(int intensitas) {
System.out.println("Perbesar volume pada TV Samsung sebanyak "+ intensitas);
}
public void perkecilVolume(int intensitas) {
System.out.println("Perkecil volume pada TV Samsung sebanyak "+ intensitas);
}
}

public class RemoteControl {


public void kirimPerintahKeTv(int aksi,Control tv,int tombol){
switch(aksi){
case 1:
tv.pindahChannel(tombol);
break;
case 2:
tv.perbesarVolume(tombol);
break;
case 3:
tv.perkecilVolume(tombol);
break;
}
}
}
public class TestRemoteControl {
public static void main(String[] args){
TVPolitron tvp = new TVPolitron();
TVSamsung tvs = new TVSamsung();
RemoteControl rc = new RemoteControl();

rc.kirimPerintahKeTv(1,tvp,1);
}
}

Page 29
public interface Control {
public void pindahChannel(int channel);
public void perbesarVolume(int intensitas);
public void perkecilVolume(int intensitas);
}
public class TVPolitron implements Control{
String[] channel = {"RCTI","SCTV","INDOSIAR","ANTV","TV7"};
public void pindahChannel(int channel) {
System.out.println("Pindah channel pada TV Politron ke "+
this.channel[channel]);
}

public void perbesarVolume(int intensitas) {

System.out.println("Perbesar volume pada TV Politron sebanyak "+ intensitas);


}

public void perkecilVolume(int intensitas) {


System.out.println("Perkecil volume pada TV Politron sebanyak "+ intensitas);
}

Page 30
Pertemuan 4

Penanganan Eksepsi

Objektif :

1. Peserta mengetahui tentang Eksepsi


2. Peserta mengetahui Fungsi Eksepsi
3. Peserta memahami Penanganan Eksepsi

Page 31
Eksepsi

Eksepsi adalah keadaan tidak normal yang muncul pada suatu bagian program pada saat
dijalankan. Penanganan eksepsi pada java membawa pengelolaan kesalahan program saat
dijalankan ke dalam orientasi-objek. Eksepsi java adalah objek yang menjelaskan suatu keadaan
eksepsi yang muncul pada suatu bagian program.
Saat suatu keadaan eksepsi muncul, suatu objek exception dibuat dan dimasukkan ke
dalam method yang menyebabkan eksepsi. Method tersebut dapat dipilih untuk menangani
eksepsi berdasarkan tipe tertentu. Method ini juga menjaga agar tidak keluar terlalu dini melalui
suatu eksepsi, dan memiliki suatu blok program yang dijalankan tepat sebelum suatu eksepsi
menyebabkan metodenya kembali ke pemanggil.

Dasar-dasar Penanganan Eksepsi

Penanganan eksepsi pada java diatur dengan lima kata kunci, yaitu:
 Try
 Catch
 Throw
 Throws
 Finally
Pada dasarnya, try digunakan untuk mengeksekusi suatu bagian program, dan jika
muncul kesalahan, sistem akan melakukan throw suatu eksepsi yang dapat anda catch
berdasarkan tipe eksepsinya, atau anda berikan finally dengan penanganan default.

Menangkap Eksepsi

Agar kesalahan karena eksepsi dapat dikendalikan, eksepsi perlu “ditangkap”. Untuk
keperluan menangkap eksepsi, Java menyediakan pernyataan try. Pernyataan ini mempunyai dua
bentuk, yang pertama:

Try{
//blok yang akan ditangkap jika terjadi eksepsi
}
Catch(parameter){
//blok yang akan dijalankan jika terjadi eksepsi
}

Bentuk kedua pernyataan try:

Try{
//blok yang akan ditangkap jika terjadi eksepsi
}
Finally{
//blok yang akan dijalankan jika terjadi eksepsi

Page 32
}

Pada bentuk di atas, bagian finally akan dijalankan, tidak tergantung apakah bagian blok
try mengalami eksepsi atau tidak.
Dari bentuk umum pertama, terdapat Catch(parameter). Parameter ini terdiri dari
bermacam-macam fungsi eksepsi. Diantaranya IOException, yang berarti mengatasi kesalahan
dalam Input atau Output, ArithmeticException, yang berarti kesalahan dalam operasi aritmatika,
NumberFormatException, yang berarti kesalahan dalam penginputan nilai ke dalam variabel.

Tipe Eksepsi

Di puncak hirarki class eksepsi terdapat satu class yang disebut throwable. Class ini
digunakan untuk merepresentasikan semua keadaan eksepsi. Setiap tipe eksepsi pada bentuk
umum di atas adalah subclass dari throwable.
Dua subclass throwable didefnisikan untuk membagi class throwable menjadi dua cabang
yang berbeda. Pertama, class exception, digunakan untuk keadaan eksepsi yang harus ditangkap
oleh program yang dibuat. Cabang kedua throwable adalah class error, yang mendefinisikan
keadaan yang tidak diharapkan untuk ditangkap dalam lingkungan normal. Berikut adalah hirarki
tentang kategori exception.

Exception Class Hierarchy


Throwable Error LinkageError, ...
VirtualMachineError, ...
Exception ClassNotFoundException,
CloneNotSupportedException,
IllegalAccessException,
InstantiationException,
InterruptedException,
IOException EOFException,
FileNotFoundException,
...
RuntimeException, ArithmeticException,
ArrayStoreException,
ClassCastException,
IllegalArgumentException,
(IllegalThreadStateException
and NumberFormatException
as subclasses)
IllegalMonitorStateException,

Page 33
IndexOutOfBoundsException,
NegativeArraySizeException,
NullPointerException,
SecurityException,
...

 Eksepsi yang tidak dapat ditangkap

Objek eksepsi secara otomatis dihasilkan oleh runtime java untuk menanggapi suatu
keadaan eksepsi. Perhatikan contoh berikut:

Class aritmatika{
Public staticvoid main(String
args[]){ Int a =0;
Int b =42/ a;
}
}

Saat runtime java mencoba mengeksekusi pembagian, akan terlihat bahwa pembaginya
adalah 0 dan akan membentuk objek eksepsi baru yang menyebabkan program terhenti dan harus
berurusan dengan keadaan kesalahan tersebut. Kita belum mengkodekan suatu penanganan eksepsi,
sehingga penanganan eksepsi standar akan dijalankan saat terjadi kesalahan.
Output dari kode program di atas:
Exception in thread "main" java.lang.ArithmeticException:/ by zero
at belajareksepsi.BelajarEksepsi.main(BelajarEksepsi.java:9)
Java Result:1
BUILD SUCCESSFUL (total time:1 second)

 Try dan Catch

Kata kunci try digunakan untuk menentukan suatu blok program yang harus dijaga
terhadap semua eksepsi, setelah blok try masukkan bagian catch, yang menentukan tipe eksepsi
yang akan ditangkap. Perhatikan contoh berikut

Class aritmatika{
Public staticvoid main(String
args[]){ Try{
Int a =0;
Int b =42/ d;
}
Catch(ArithmeticException
e){ System.out.println(“Pembagi adalah
0”);
}
}

Page 34
Outputnya:
pembagi adalah 0
BUILD SUCCESSFUL (total time:0 seconds)

 Throw

Java menyediakan pernyataan yang digunakan untuk melontarkan eksepsi, yaitu berupa
pernyataan throw. Bentuk pernyataan ini:
Throw variableObject;

Dalam hal ini variableObject menyatakan variabel objek yang merujuk ke suatu kelas eksepsi.
Untuk melihat efek throw, perhatikan program berikut:

Public class cobathrow{


Public staticvoid main(String[] args){
RunTimeException r =new RuntimeException(“ini eksepsi
punya runtimeException”);
System.out.println(“ini baris sebelum ada throw”);
Throw(r);
}
}

Outputnya:
Ini baris sebelum ada throw
Exception in thread "main" java.lang.RuntimeException: Ini eksepsi punya
RuntimeExceptionat cobathrow.cobathrow.main(cobathrow.java:7)
Java Result:1
BUILD SUCCESSFUL (total time:1 second)

 Throws

Klausa throws berfungsi untuk memberitahukan bahwa suatu metode memiliki


kemungkinan menghasilkan suatu eksepsi. Bagi yang membaca bentuk metode dengan klausa
throws perlu melakukan langkah sendiri untuk menangani kesalahan akibat pemanggilan metode
tersebut.

Contoh:
Class kumpul{
//metode tanpa throws
Public void metodeA(){
System.out.println(“Metode A”);
}
//metode dengan throws

Page 35
Public void metodeB()throws
IOException{ System.out.println(“M
etode B”);
}
}
Public class cobaThrows{
Public staticvoid main(String[]
args){ kumpul coba =new kumpul();
coba.metodeA();
try{
coba.metodeB();
}
Catch(IOException e){}
}
}
Outputnya:
Metode A
Metode B
BUILD SUCCESSFUL (total time:0 seconds)

Page 36
Java For BeginnerACTIVITY 1

Pengenalan Java

Format save: Pert1_Act1_nama_npm


Soal !

1. Bagaimanakah ciri –ciri dari pemrograman procedural yang anda ketahui? Poin 6
2. Bagaimanakah ciri –ciri dari pemrograman berorientasi objek yang anda ketahui? Poin 6
3. Sebutkan keuntungan menggunakan pemrograman berorientasi objek! Poin 6
4. Jelaskan apa yang anda ketahui tentang modifier! Poin 6
5. Apa yang anda ketahui tentang class? Poin 6
6. Berikan contoh pendeklarasian method berupa prosedur yang menggunakan parameter!
Poin 10
7. Setelah melihat video tentang membuat class sederhana, buatlah program java denganoutput sebagai
berikut : (Poin 15)

8. Setelah melihat video tentang membuat program java menggunakan class, atribut danobject, Buatlah
program java untuk menghitung volume balok dengan output sebagai berikut : (Poin 15)

9. Setelah melihat video tentang membuat program java menggunakan method berupafungsi, buatlah
program java dengan nilai input sebagai berikut : (Poin 15)

10. Setelah melihat video tentang penggunaan kata kunci This pada java, buatlah programjava untuk
menghitung luas segitiga dengan input nilai sebagai berikut (Poin 15)
Jawaban :
1. Ciri – Ciri Pemrograman Prosedural menurut Module :
 Seluruh data dan kode digabung menjadi satu bagian dalam satu program (Lebih
rapih dan mudah diatur)
 Untuk memudahkan programmer dalam membuat program-program sederhana
 Praktis dan penggunaan jenis pemrograman procedural tidak menjadi masalah
 Masalah akan muncul ketika program yang dibuat berkembang lebih besar dan
kompleks
 Terdiri dari objek (komponen-komponen penyusun program secara konseptual akan
dipecah menjadi bagian – bagian tersendiri yang disebut dengan objek.
 Setiap objeknya memiliki variabel dan konstanta
 Objek diidentifikasikan sebagai entitas yang memiliki data dan method
Tanggapan brainly  (source link : https://brainly.co.id/tugas/24550967)
Ciri – ciri Pemrograman Prosedural :
- Serangkaian tugas diselesaikan dalam bentuk fungsi atau prosedure.
- Cara pandang -> program adalah suatu urutan instruksi.
- Programer harus me-break down suatu problem (problem solving) menjadi sub
problem yang lebih simple.
- Fungsi dan prosedure menjadi fokus utama.
- Fungsi dan prosedure digunakan untuk memanipulasi data.
- Data bersifat pasif.
Sifat – sifat Pemrograman Prosedural :
- Memuat teknik pemecahan masalah yang logis dan matematis.
- Memuat Algoritma yang efisien, efektif dan sederhana.
- Tidak menggunakan perintah GOTO.
- Biaya pengujian program relatif rendah.
- Memiliki dokumentasi yang baik.
- Biaya perawatan dan dokumentasi yang dibutuhkan relatif rendah.
Ciri – Ciri yang saya pelajari dari Pemrograman Prosedural :
 Efektif dan Efesiensi
 Lebih Terstruktur dari pemrograman lain, karena mengurutkan data dari awal hingga
akhir data.
 Biaya lebih murah karena tidak banyak yang membelinya.
 Memiliki pengklasifikasi data yang rapih.
 Memiliki fitur lebih sederhana.
 Sulit untuk dipelajari.
2. Terdapat 3 ciri mendasar dari Pemrograman Berorientasi Objek (PBO) :
 Encapsulation
Proses pengelompokan property dan method dengan memberikan hak akses
kepada property dan method sehingga property hanya dapat diakses melalui
method accessor dan tidak dapat di rubah tanpa melalui prosedur yang
seharusnya yang diatur pada method mutator. Untuk lebih jelas tentang
Encapsulation ...

 Inheritance (Pewarisan)
Cara untuk membangun hubungan antar object. Di dalam inheritance klas
dimana sebuah objek ditentukan oleh class – class, class – class dapat mewarisi
semua attribute dan behavior dari class yang sudah ada sebelumnya yang
biasa disebut sebagai class dasar, superclasses, atau class induk. Class – class
yang melakukan inheritance disebut sebagai derived class, subclass, atau class
rank. Hubungan antar class melalui inheritance memberikan efek kepada
hierarki class. Untuk lebih jelas tentang Encapsulation ...

 Polymorphisme
Dari segi bahasa, polymorphisme berarti banyak bentuk. Di dalam
pemrograman berorientasi objek, polymorphisme adalah cara dimana sebuah
class dapat memiliki banyak method dengan nama sama dengan syarat
memiliki struktur type data dari parameternya harus berbeda. Untuk lebih
jelas tentang Polymorphisme ...
Info penting : Objek dalam pemrograman berorientasi objek diabstraksikan menjadi sebuah
kelas(class)
3. Beberapa keuntungan yang didapat dengan menggunakan pemrograman berorientasi
objek adalah :
 Objek – objeknya dapat digunakan ulang (reuseable) untuk program-program
lain.
 Programnya lebih terstruktur dan lebih mudah untuk dikembangkan.
 Bersifat natural karena perilaku dan sifat-sifat objek didalam program akan
disesuaikan dengan objek – objek nyata yang ada di dalam sekitar kita.
4. Modifier adalah sifat yang dimiliki oleh setiap atribut, method maupun kelas dalam
java. Modifier akses adalah modifier yang selalu digunakan. Modifier akses terdiri
dari private, default, protected, public. Selain itu ada pula modifier final, static,
abstract, synchronized, native dan storage (transient, volatile).
Modifier merupakan pola (template) untuk pembuatan objek(object)

5. Kelas didefinisikan dengan kata kuncu class. Untuk menyimpan file, simpan dengan
nama file yang sama seperti class yang digunakan dalam file tersebut. Kemudian
didalam java ada aturan tersendiri untuk pemberian nama class, yaitu harus diawali
dengan huruf besar untuk membedakan antara class dan object. Nama class harus
diawali dengan huruf besar.

Berikut adalah bentuk umum dari pendeklarasian class pada java:

[modifier] class nama_class {

[deklarasi_atribut]

[deklarasi_konstruktor]

[deklarasi_metode]

Contoh pendeklarasian class:

Class PersegiPanjang{

//area penulisan kode program selanjutnya

Kode diatas menjelaskan bahwa kita telah mendefinisikan sebuah tipe data baru
dengan nama PersegiPanjang yang memiliki data – data berupa panjang(P) dan
lebar(L).

Object adalah instance atau representasi nyata dari sebuah kelas. Sebuah kelas bisa
memiliki banyak object, setiap object mempunyai sifat yang sama persisi seperti yang
didefinisikan dalam kelas tersebut. Untuk pemberian nama sebuah object diawali
dengan huruf kecil.

Berikut adalah pendeklarasian object pada java :

nama_class nama_object = new nama_constructor();

nama_class nama_object;

nama_object = new nama_constructor();


Contoh pendeklarasian object :

Kotak k = new Kotak();

Kotak k;
k = new Kotak();

6. Prosedur. Merupakan method yang tidak mengembalikan nilai. Cara pembuatan


prosedur sama dengan fungsi, namun bedanya adalah pada prosedur menggunakan
kata kunci void. Method merupakan tingkah laku yang dimiliki oleh objek. Method
digunakan untuk memodularisasi program pemisah satu tugas menjadi satu unit
tersendiri.
- Method prosedur menggunakan parameter :

void nama_method (parameter input)


{Method body;

}

- Method prosedur menggunakan parameter :


void LuasPersegi(int s) {
sisi = s;
}

- Method prosedur tanpa parameter :

void nama_method () {
Method body;

}

Terdapat Method lain selain Procedure. Didalam java terdapat dua buah method, yaitu :
a. Fungsi. Merupakan method yang memiliki nilai balik jika method tersebut dipanggil. Cara pembuatan sebuah
fungsi adalah dengan cara menentukan nilai baliknya, kemudian nama methodnya.
- Method fungsi tanpa parameter :

[modifier] tipe_nilaiKembali nama_method () {


Method body;

}
- Method fungsi menggunakan parameter :

[modifier] tipe_nilaiKembali nama_method (parameter input) {


Method body;

}

Contoh pendeklarasian method :

- Method fungsi tanpa parameter :

public int LuasPersegi() {


int luas = sisi * sisi;
return luas;
}
}

- Method fungsi menggunakan parameter :

public int LuasPersegi(int sisi) {


return sisi * sisi;
}

- Method prosedur tanpa parameter :

void LuasPersegi() {
System.out.println(“Luas Persegi = ” + (sisi *sisi));
}

Method merupakan tingkah laku yang dimiliki oleh objek. Method yang memiliki nilai balik jika method
tersebut dipanggil. Method yang menggunakan kata kunci void dan tidak mengembalikan nilai. This
digunakan didalam method untuk mewakili nama kelas yang bersangkutan.

Accessor Method
Ada kalanya object lain ingin dapat mengakses data private, untuk itu digunakanlah accessor method.
Accessor method digunakan untuk membaca nilai variable pada class, baik berupa instance maupun static.

Berikut penulisan accessor method :

get namaInstanceVariabel
Contoh pendeklarasian accessor method :

public class Persegi{


private int sisi;

public int getSisi(){


return sisi;
}

}
Mutator Method
Mutator method digunakan untuk memberi atau mengubah variable dalam class oleh objek (object) lain.

Berikut penulisan mutator method :

set namaInstanceVariabel

7.

Bentuk Umum :
class Biodata {
String Nama;
String Kelas;
String NPM;
}

class Sebut {
public static void main(String[] args){

Biodata i = new Biodata();


i.Nama = "Nama anda";
i.Kelas = "Npm anda";
i.NPM = "Kelas anda";

System.out.println("Nama saya : "+i.Nama);


System.out.println("Npm saya : "+i.NPM);
System.out.println("Kelas saya : "+i.Kelas);
}
}

File disimpan dengan nama “Biodata.java”


8. class Biodata {
9. String Nama;
10. String Kelas;
11. int NPM;
12. }
13.
14. class Sebut {
15. public static void main(String[] args){
16.
17. Biodata i = new Biodata();
18. i.Nama = "Roberto Ocaviantyo Tahta Laksmana";
19. i.Kelas = "2DB01";
20. i.NPM = 31120049;
21.
22. System.out.println("Nama saya : "+i.Nama);
23. System.out.println("Npm saya : "+i.NPM);
24. System.out.println("Kelas saya : "+i.Kelas);
25. }
26. }
27.

Hasil input Nama :

8.
class Balok
{
int panjang;
int lebar;
int tinggi;

public class NilaiBalok {


public static void main(String[] args) {
Balok b = new Balok();
b.panjang = 12;
b.lebar = 10;
b.tinggi = 7;
float volume = b.panjang*b.lebar*b.tinggi;

System.out.println("Panjang Balok: "+b.panjang);


System.out.println("Lebar Balok: "+b.lebar);
System.out.println("Tinggi Balok: "+b.tinggi);
System.out.println("Volume Balok: "+volume);

}
}

File disimpan dengan nama “NilaiBalok.java”

9.
class Nilai{
double kuis;
double tugas;
double Hitung;
}

public class Penilaian{


public static void main(String[] args) {
Nilai n = new Nilai();
n.kuis = 93.5;
n.tugas = 81.5;
n.Hitung=(n.kuis+n.tugas)/2;
System.out.println("Nilai kuis: "+n.kuis);
System.out.println("Nilai tugas: "+n.tugas);
System.out.println("Jumlah nilai: "+n.Hitung);

}
}

File disimpan dengan nama “Penilaian.java”


10.
public class Segitiga {

double alas;
double tinggi;
double luas;
void isiData(double a, double t){
this.alas = a;
this.tinggi = t;
}
public static void main(String[] args) {
Segitiga sg=new Segitiga();
sg.isiData(11.5, 5);
sg.luas=(sg.alas*sg.tinggi)/2;
System.out.println("Alas: "+sg.alas);
System.out.println("Tinggi: "+sg.tinggi);
System.out.println("Luas: "+sg.luas);
}
}

File disimpan dengan nama “Segitiga.java”


Java For Beginner

ACTIVITY 2

(Overloading Method, Constructor dan Access Modifier)

Format save: Pert2_Act1_nama_npm


Soal !

1. Apa yang anda ketahui tentang overloading method? (5 POIN)


2. Sebutkan syarat-syarat overloading pada suatu method! (5 POIN)
3. Apa yang anda ketahui tentang constructor? (5 POIN)
4. Sebutkan sifat-sifat constructor! (5 POIN)
5. Bagaimanakah bentuk umum pendeklarasian constructor menggunakan parameter?
(5 POIN)
6. Apa yang anda ketahui tentang overloading constructor? (10 POIN)
7. Sebutkan jenis-jenis access modifier! (5 POIN)

8. Setelah melihat video tentang contoh overloading method pada java, buatlah program
java untuk menghitung hasil dari a*b, dengan ketentuan:
Nilai yang dimasukkan:
Untuk a = 5 dan 4
Untuk b = 5.5 dan 4
Print screen kode program dan output program, masukkan kedalam Microsoft Word.
*video dapat dilihat di folder 2.1 overloading method
(20 POIN)

9. Setelah melihat video tentang contoh overloading method bagian kedua pada java, buatlah
program java dengan nilai yang dimasukkan adalah:
“Tidak ada parameter”
“Dengan satu parameter bernilai : 8.5”
Print screen kode program dan output program, masukkan kedalam Microsoft Word.
*video dapat dilihat di folder 2.2 overloading method2
(20 POIN)

10. Setelah melihat video tentang contoh overloading constructor pada java, buatlah program
java dengan nilai yang dimasukkan adalah:
a) Untuk constructor tanpa parameter input nilai panjang = 2, lebar = 3, tinggi = 5
b) Untuk constructor dengan 1 parameter nilai yang diinput 15
c) Untuk constructor dengan 3 parameter nilai yang diinput adalah 3, 5, 4
*video dapat dilihat di folder 2.3 overloading constructor
(20 POIN)
Jawaban :

1. Overloading pada method static. Method static dapat memiliki lebih dari satu static method
dengan nama yang sama, tetapi berbeda pada input parameternya.

Method Overloading yang berbeda hanya pada bagian keyword static


Tidak dapat dilakukan overloading dua method pada Java, jika berbeda hanya pada keyword static-
nya saja atau angka dari parameter dan tipe dari parameter adalah sama

Overloading pada main() Java


Seperti halnya static method lainnya, main() dapat dilakukan overloading pada Java.

Java mendukung operator overloading


Tidak seperti C ++, Java tidak mengijinkan user-defined overloading operator. Secara internal Java
melakukan overloading operator.

Perbedaan antara overloading dan overriding pada Java


Satu, Overloading adalah tentang fungsi yang sama tetapi memiliki signature yang
berbeda. Overriding adalah tentang fungsi yang sama, signature yang sama, tetapi class
yang terhubung melalui inheritance berbeda seperti diperlihatkan pada gambar 1.

Gambar 1 Perbedaan antara overloading dan overriding pada Java


Dua, Overloading adalah control dari compiler time polymorphism dan overriding adalah
contoh dari runtime polymorphism.
(https://www.elfanmauludi.id/2019/04/method-overloading-pada-java.html)
2.1 Overloading Method
Dalam satu class dapat mendefinisikan lebih dari satu method dengan nama yang sama tetapi
parameter yang dideklarasikan harus berbeda baik itu jumlahnya ataupun tipe parameternya.

Jenis-jenis method overloading:


1. Jumlah parameter beda, tipe beda
2. Jumlah parameter sama, tipe beda
3. Jumlah parameter beda, tipe sama

2. Syarat-syarat overloading:

1. Dalam sebuah kelas diperbolehkan lebih dari satu method dengan nama yang sama
dengncatatan method dapat dibedakan berdasarkan banyaknya parameter atau tipe
data parameter.
2. Overloading tidak bisa dilakukan dengan membedakan nilai kembaliannya.
3. Overloading juga bisa dilakukan pada sub kelasnya.

Contoh method yang mengalami overloading:

Method yang di Overload :

myMethod(String s, int i, float f)

Method yang mengOverload (LEGAL)


Jumlah arugument berbeda
myMethod()

Jumlah arugument berbeda


myMethod(int i)

Jumlah arugument berbeda, tapi


myMethod(String s1, String s2, String s3) urut-urutan tipe data berbeda

Jumlah arugument berbeda, tapi


myMethod(String s, float f, int i) urut-urutan tipe data berbeda

Method yang mengoverload (ILEGAL)


Jumlah argument sama, urut-
myMethod(String s, int i, float f) urutan tipe data sama.

Jumlah argument sama, urut-


myMethod(String x, int y, float z) urutan tipe data sama.
Yang haru diperhatikan dari
contoh ini adalah, nama variabel
yang berbada tidak lantas
menyebabkan argument list
menjadi berbeda.
Overloading method terjadi pada objek yang sama. Ketika overloading method dipanggil,
Java mencari kesamaan antara argumen yang digunakan untuk memanggil method dan
parameter dari method. tetapi, kesamaan ini tidak mutlak karena pada Java ada otomatisasi
konversi tipe yang berbeda.

Overloading method dapat digunakan ketika kita mempunyai operasi yang


sama namun berbeda implementasinya. Yang terpenting dalam melakukan
ini, nama method harus sama, tapi mempunyai parameter yang berbeda.
Terserah berbeda dari segi tipe datanya atau jumlah parameternya.
Tergantung kebutuhan untuk implementasi dan nilai kembaliannya. Jadi
yang perlu diingat saat melakukan overloading method:

• Nama method sama


• Parameter berbeda (baik tipe maupun jumlahnya)
• Tipe data nilai kembalian dapat berbeda atau sama

Overloading itu mendeklarasikan lebih dari satu kali dengan syarat-syarat tertentu. baik
overloading method ataupun
konstruktor(https://bernazlionk.wordpress.com/2009/01/21/overloadding-method/)
3. Deklarasi constructor
Constructor adalah method khusus yang didefinisikan didalam kelas dan akan dipanggil
secara otomatis setiap kali terjadi instansiasi objek. Jika dalam suatu kelas kontruktor tidak
didefinisikan, maka secara otomatis Java akan membuat sebuah constructor, yaitu null
constructor. C onstructor tersebut dinamakan sebagai default constructor.
Namun jika kita mendefiniskan sebuah constructor baru untuk kelas yang dibuat, maka
default constructor sudah tidak berfugsi atau tidak digunakan lagi.

Ciri-ciri default constructor:

1. Dibuat secara otomatis saat class dikompilasi.


2. Dibuat secara otomatis jika class yang dikompilasi tidak mempunyai constructor
samasekali.
3. Tidak memiliki parameter formal.

(http://efazriyati.staff.gunadarma.ac.id/Downloads/files/51914/PBO_Lanjut.pdf)
Contoh default constructor :

public StudentRecord()
{
//area penulisan kode
}

4. Sifat-sifat constructor:
1. Nama constructor sama dengan nama class
2. Tidak memiliki tipe data termasuk void
3. Tidak memiliki return value.
4. Dieksekusi ketika terjadi instansiasi.
5. Dapat mempunyai akses modifier, biasanya public namun dapat berupa private
6. Tidak dapat dipanggil secara langsung, namun harus dipanggil dengan menggunakan
operator new pada pembentukan sebuah class.

5. Berikut cara pendeklarasian constructor :

- Pendeklarasian menggunakan parameter

[modifier] nama_class (parameter)


{
//statement
}

- Pendeklarasian tanpa menggunakan parameter

[modifier] nama_class ()
{
//statement
}

(http://efazriyati.staff.gunadarma.ac.id/Downloads/files/51914/PBO_Lanjut.pdf)
6. Overload Konstruktor di Java
Overloading Konstruktor Java adalah teknik di mana suatu kelas dapat memiliki
sejumlah konstruktor yang berbeda dalam daftar parameter. Kompiler membedakan
konstruktor ini dengan memperhitungkan jumlah parameter dalam daftar dan
tipenya.

C ontoh konstruktor yang valid untuk Akun class adalah


Account (int a);
Account (int a,int b);
Account (String a,int b);

(https://www.guru99.com/java-constructors.html)

Overloading Constructor
Sama halnya dengan method, constructor dapat melakukan overloading. Bedanya
overloading constructor terjadi pada objek yang berbeda-beda, nilai argument
berbeda, sehingga method bisa lebih dari satu. P enerapan overloading pada kelas
Java akan menjadi suatu norma tanpa perkecualian.
Berikut contoh overloading pada constructor:

import java.awt.*;
import java.awt.event.*;
import java.text.*;
import java.util.*;
import java.util.ArrayList;
import java.util.regex.*;
import java.util.Date.*;
import java.lang.*;
import java.applet.*;
import java.net.*;
import java.util.Scanner;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.math.RoundingMode;

class Kotak { double panjang; double lebar; double tinggi;


// Mendefinisikan constructor dengan satu parameter
Kotak(double sisi) {
panjang = lebar = tinggi = sisi;
}

// Mendefinisikan constructor dengan tiga parameter


Kotak(double p, double l, double t) {
panjang = p; lebar = l; tinggi = t;
}

double hitungVolume() {
return (panjang * lebar * tinggi);
}
}

class Over {
public static void main(String[] args) { Kotak k1, k2;
k1 = new Kotak(10);
k2 = new Kotak(4, 3, 2);

//Menampilkan volume dari masing-masing objek Kotak


System.out.println("Volume k1 = " + k1.hitungVolume());
System.out.println("Volume k2 = " + k2.hitungVolume());
}
}
7. Access modifier merupakan keyword yang digunakan untuk menentukan spesifikasi
tingkat akses suatu vaiable atau method (anggota kelas). Pengaksesan yang dimaksud
bisa berupa pengaksesan dalam kelas yang sama, turunan maupun dari luar kelas di
mana variable dan method dideklarasikan.

(http://efazriyati.staff.gunadarma.ac.id/Downloads/files/51914/PBO_Lanjut.pdf)

Berikut adalah jenis-jenis access modifier :

No. Access Modifier Pada class dan Interface Pada Method & Variable

Diwarisi oleh subkelas dipaket


Dapat diakses oleh yang
1. Default yang sama, dapat diakses oleh
sepaket.
method-method yang sepaket.
Diwarisi oleh subkelasnya, dapat
2. Public Dapat diakses dimanapun
diakses dimanapun.
Diwarisi oleh subkelasnya, dapat
3. Protected Tidak bisa diterapkan diakses oleh method-method
yang sepaket.
Tidak dapat diakses dimanapun
4. Private Tidak bisa dterapkan kecuali oleh method-method
yang ada dalam kelas itu sediri.

1. Default

Access Modifier ini hanya menspesifikasikan kelas-kelas (classes) di paket yang


sama yang bisa mengakses variable dan method suatu kelas. Anggota kelas
dengan default access bisa melihat kelas lain dipaket yang sama. Tidak ada
keyword khusus untuk mendeklarasikan modifier default access. Sehingga apabila
tidak ada access modifier pada pendeklarasian tersebut, berarti yang dimaksud
adalah default access.
2. Public

Suatu anggota kelas (class member) dideklarasikan sebagai public, maka anggota
tersebut akan bisa digunakan oleh siapa saja, yaitu baik oleh kelas yang sama,
kelas lain maupun lingkungan luar kelas. Sehingga anggota kelas (class member)
yang dideklarasikan sebagai public akan bisa diakses oleh sembarang object lain.

3. Protected

Access modifier protected menspesifikasikan atau menentukan anggota kelas


(class member) yang hanya bisa diakses oleh method-methodyang ada di dalam
kelas yang sama dan juga dapat diakses oleh subclass (kelas turunan) dari kelas
tersebut.
4. Private
Access modifier private merupakan tingkatan akses yang sangat terbatas.
Kemudian seperti modifier-modifier lain, modifier private
menspesifikasikan anggota kelas (class member) yang hanya bisa diakses
oleh kelas dimana anggota-anggota kelas tersebut dideklarasikan. Keadaan
ini mengakibatkan bahwa tidak ada kelas lain yang bisa mengakses anggota
kelas private, sekaligus termasuk subkelas-subkelas (subclassess)- nya.
Access modifier private adalah yang paling terbatas, menspesifikasikan
anggota kelas(variable dan method) hanya dapat diakses oleh kelas dimana
anggota itu didefinisikan.
8. Simpan dengan nama file Perkalian.java
/*Roberto Ocaviantyo Tahta Laksmana 2DB01 31120049r*/
class Perkalian{

/*Mendefinisikan method dengan 2 parameter tipe integer*/


int kali(int a, int b){
return a*b;
}
/*Mendefinisikan method dengan 2 parameter tipe double atau decimal*/
double kali(double a, double b){
return a*b;
}
}
/*Bagian class utama atau main class()*/
class HasilKali {
public static void main(String[] args){

Perkalian k = new Perkalian();

int a = k.kali(5,4);
double b = k.kali(5.5, 4);

System.out.println("Hasil kali tipe int = "+a);


System.out.println("Hasil bagi tipe double = "+b);
}
}

Output PowerShell Extension !


Output Command Prompt / Command Line Interface !

Compile file Perkalian.java

Menjalankan class utama,


yaitu class HasilKali()

9. Simpan dengan nama file overload2.java


/*Roberto Ocaviantyo Tahta Laksmana 2DB01 31120049r*/
class Parameter{

/*Method tanpa Parameter*/


void type(){
System.out.println("Tidak ada parameter");
}

void type(double d){

/*Method dengan 1 parameter bertipe double*/


System.out.println("Dengan satu parameter bernilai :"+d);
}
}
/*Bagian class utama atau main class() */
class ovrload{
public static void main(String[] args){

Parameter c = new Parameter();

c.type();
c.type(8.5);
}
}

Output PowerShell !
Output dengan C ommand Prompt atau C ommand Line Interface (C LI) !

Compile file Perkalian.java

Menjalankan class utama,


yaitu class HasilKali

Compile file overload2.java

Menjalankan class utama,


yaitu class ovrload

10. Simpan file dengan nama overload.java


/*Roberto Ocaviantyo Tahta Laksmana 2DB01 31120049r*/
class Kotak{
double panjang;
double lebar;
double tinggi;

/*Mendefinisikan constructor dengan tidak ada parameter*/


/*Deklarasi variabel biasa*/
Kotak(){
panjang = 2;
lebar = 3;
tinggi = 5;
}

/*Mendefinisikan constructor dengan satu parameter*/


Kotak(double sisi){
panjang = lebar = tinggi = sisi;
}

/*Mendefinisikan constructor dengan tiga parameter*/


Kotak(double p, double l, double t){
panjang = p;
lebar = l;
tinggi = t;
}

/*Method untuk menghitung volume kotak*/


double hitungVolume(){
return (panjang * lebar * tinggi);
}
/*Bagian class utama atau main class*/
class Jalan{
public static void main(String[] args){

Kotak k1, k2, k3;

k1 = new Kotak(15);
k2 = new Kotak();
k3 = new Kotak(3,5,4);

System.out.println("Volume k1 = "+k1.hitungVolume());
System.out.println("Volume k2 = "+k2.hitungVolume());
System.out.println("Volume k3 = "+k3.hitungVolume());
}
}
}

Output dengan PowerShell !


Java For Beginner

ACTIVITY 3

(INHERITANCE, POLIMORFISME, INTERFACE)

Format save (Act 3.1-3.3): Pert3_Act1_nama_npm

ACTIVITY 3.1 INHERITANCE


Aturan pengerjaan

# Print screen Listing dan Output Program yang anda kerjakan pada ms. word

# Baca dan pahami soal secara seksama, Simpan pada folder yang telah dibuat

# Perhatikan besar kecil setiap karakter pada script

SOAL :

1. Ketikan kembali script seperti gambar di bawah ini, Dan jelaskan kegunaan class
Mamalia didalam program ini ! simpan dengan nama Mamalia.java. Bobot(5)

2. Ketikan kembali script seperti gambar di bawah ini, Jelaskan kegunaan script extends
pada script di bawah ini ! Simpan dengan nama Paus.java. (Bobot 5).
3. Ketikan kembali script seperti gambar di bawah, Apa kegunaan dari script class
Cheetah extends Mamalia ? Simpan dengan nama Cheetah.java. (Bobot 10).

4. Ketikan kembali script seperti gambar di bawah, Apa yang akan terjadi jika String x
= "Sapi " dihapus ? Simpan dengan nama Sapis.java. (Bobot 10).
5. . Ketikan kembali script seperti gambar di bawah, Jelaskan kegunaa class Turunan yang
adadi bawah ini? Simpan dengan nama Turunans.java. (Bobot 60).

Untuk menjalankan program , complie file java Turunan.java kemudian lihat hasilnya

6. Berikan Output setelah program di jalankan,(Bobot 10)


ACTIVITY 3.2 POLIMORFISME
Aturan pengerjaan

# Print screen Listing dan Output Program yang anda kerjakan pada ms. word

# Baca dan pahami soal secara seksama, Simpan pada folder yang telah dibuat

# Perhatikan besar kecil setiap karakter pada script

SOAL :

1. Simpan dengan nama file hewan.java (Bobot 20)

2. Simpan dengan nama file kuda.java (Bobot 20)

3. Simpan dengan nama file kucing.java (Bobot 20)


4. Simpan dengan nama file ayam.java (Bobot 20)

5. Simpan dengan nama file suarahewan.java (Bobot 20)

Untuk menjalankan program , complie file java suarahewan.java kemudian lihat hasilnya

BERIKAN OUTPUT DARI PROGRAM DI ATAS


ACTIVITY 3.3 INTERFACES
Aturan pengerjaan

# Print screen Listing dan Output Program yang anda kerjakan pada ms. word

# Baca dan pahami soal secara seksama, Simpan pada folder yang telah dibuat

# Perhatikan besar kecil setiap karakter pada script

SOAL :

1. Simpan dengan nama file OpsiSenjata.java (Bobot 25)

2. Simpan dengan nama file Senjata.java (Bobot 25)


3. Simpan dengan nama file Tester.java (Bobot 25)

Untuk menjalankan program , complie file java Tester.java kemudian lihat hasilnya

4. Berikan hasil Output Program (Bobot 25)


Jawaban : ACTIVITY 3.1 INHERITANCE
1. Semua program disimpan dalam satu folder
(C:\Users\DELL\OneDrive\Desktop\Javaprogram\Klasifikasi Mamalia)
Command Prompt / Commmand Line Interface
cd C:\Users\DELL\OneDrive\Desktop\Javaprogram\Klasifikasi Mamalia

a. Kode program dalam bentuk file Mamalia.java Nama class Mamalia

public class Mamalia { Overloading method


tanpa parameter
Overloading void void KelasMamalia(){
KelasMamalia(); System.out.println("Ciri umum mamalia adalah bernapas dengan paru-
paru, "+"berkembang biak dengan cara melahirkan");
}
} Digunakan untuk mencetak
program bertipe data string
b. Kode program dalam bentuk listing program

Belum ada output program, dikarenakan kelas Mamalia hanya sebagai penampung file dari file lainnya.
Beralih ke file Paus.java
Bentuk umum Pewarisan Kelas :

namaSubClass extends namaSuperClass {


//definisi class
}
Superclass : Mamalia Method overloading tanpa Nama class Paus dengan cara
Subclass : Paus parameter “extends” / pewarisan kelas dari
generalx.TampilkanPaus(); class Mamalia
2.
a. Kode program dalam bentuk file Paus.java Pendeklarasian x sebagai string
yang memuat string “Ikan Paus”
class Paus extends Mamalia{
String x = "Ikan Paus"; Overloading method
void TampilkanPaus(){ tanpa parameter Digunakan untuk
mencetak program
System.out.println("dan Mamalia yang anda pilih adalah "+x);
Overloading void bertipe data string dan
TampilkanPaus(); System.out.println("Mamalia ini berada di laut"); ditambahkan pilihan case
System.out.println("Paus termasuk jenis mamalia terbesar"); variable (x)
}
} Digunakan untuk mencetak
program bertipe data string
b. Kode program dalam bentuk listing program

namaSubClass extends namaSuperClass {


//definisi class
}

Belum ada output program, dikarenakan kelas Mamalia hanya sebagai penampung file Paus yang akan
diwariskan ke file lainnya. Beralih ke file Cheetah.java
Nama class Cheetah dengan cara
3. “extends” / pewarisan kelas dari
a. Kode program dalam bentuk file Cheetah.java class Mamalia

class Cheetah extends Mamalia{


String x = "Cheetah"; Pendeklarasian x sebagai string
void TampilkanCheetah() Overloading method yang memuat string “Cheetah”
{ tanpa parameter
System.out.println("dan Mamalia yang anda pilih adalah "+x);
Overloading void
TampilkanCheetah() System.out.println("Mamalia ini berada di darat");
; System.out.println("Cheetah termasuk mamalia terlari tercepat");
}
Digunakan untuk
mencetak program
} Digunakan untuk mencetak bertipe data string dan
program bertipe data string ditambahkan pilihan case
variable (x)
b. Kode program dalam bentuk listing program

Method overloading tanpa


Superclass : Mamalia parameter
Subclass : Cheetah generalx.TampilkanCheetah();

Bentuk umum Pewarisan Kelas :

namaSubClass extends namaSuperClass {


//definisi class
}
Belum ada output program, dikarenakan kelas Mamalia hanya sebagai penampung file Paus yang akan
diwariskan ke file Cheetah. Beralih ke file Sapis.java
Nama class Sapi dengan cara
“extends” / pewarisan kelas dari
4. class Mamalia
a. Kode program dalam bentuk file Sapis.java
class Sapi extends Mamalia{ Pendeklarasian x sebagai string
String x = "Sapi"; Overloading method yang memuat string “Sapi”
void TampilkanSapi(){ tanpa parameter
System.out.println("dan Mamalia yang anda pilih adalah "+x);
Overloading void System.out.println("Mamalia ini berada di darat");
TampilkanSapi(); System.out.println("Sapi adalah mamalia yang diternakan"); Digunakan untuk
mencetak program
bertipe data string dan
} Digunakan untuk mencetak ditambahkan pilihan case
} program bertipe data string variable (x)

Method overloading tanpa


b. Kode program dalam bentuk listing program parameter
generalx.TampilkanSapi();
Superclass : Mamalia
Subclass : Sapi

Bentuk umum Pewarisan Kelas :

namaSubClass extends namaSuperClass {


//definisi class
}

Belum ada output program, dikarenakan kelas Mamalia hanya sebagai penampung file Paus yang akan
diwariskan ke file Cheetah dan diwariskan lagi ke file Sapis. Beralih ke file Turunans.java

Jika String x = "Sapi"; dihapus maka akan mengakibatkan error (variable x


tidak bisa dieksekusi saat program dijalankan atau pilihan 3 kosong dan tidak terdefinisi atau
terdeklarasi sama sekali)
5.
a. Kode program dalam bentuk file Turunans.java
import java.awt.*;
import java.awt.event.*;
import java.text.*;
import java.util.*;
import java.util.ArrayList;
import java.util.regex.*;
import java.util.Date.*;
import java.lang.*;
import java.applet.*;
import java.net.*;
import java.util.Scanner;
Berbagai jenis paket impor yang diperlukan
import java.io.BufferedReader;
pada pemrograman java
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.math.RoundingMode;
import java.io.*;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader; Run || debug untuk seluruh
import java.io.Console; program dari 1 – 5 dengan
Nama class Turunan alat input/output dari paket
import java.io.InputStreamReader;
import java.io.*;
class Turunan {
dan
import
public static void main(String[] args) throws IOException
java.io.IOException;
{
String sInput=null;
System.out.println("====JENIS MAMALIA====");
System.out.println("1. Ikan Paus"); sInput bertipe String
System.out.println("2. Cheetah"); dideklarasikan sebagai
System.out.println("3. Sapi"); tampungan terminator /
System.out.println("Masukkan Pilihan [1..3] : "); Command Prompt
Mamalia generalx = new Mamalia();
Paus turunan1 = new Paus();
Cheetah turunan2 = new Cheetah();
Sapi turunan3 = new Sapi(); Mamalia dideklarasikan sebagai objek baru,
yaitu “generalx”
Konstruktor ada empat Paus dideklarasikan sebagai objek baru, yaitu
Mamalia generalx = new Mamalia(); “turunan1"
Paus turunan1 = new Paus(); Cheetah dideklarasikan sebagai objek baru
,yaitu “turunan2”
Cheetah turunan2 = new Cheetah();
Sapi dideklarasikan sebagai objek baru, yaitu
Sapi turunan3 = new Sapi(); “turunan3”
InputStreamReader inputan = new InputStreamReader (System.in); 1. Alat input pembaca
BufferedReader jm = new BufferedReader (inputan); inputan
(InputStreamReader)
sInput = jm.readLine(); dideklarasikan sebagai
int i = Integer.parseInt(sInput); objek baru yaitu “inputan”

switch(i){ 2. Console pembaca inputan


case 1: Method overloading tanpa (BufferedReader)
parameter dideklarasikan sebagai
generalx.KelasMamalia(); objek baru yaitu “jm”
generalx.KelasMamalia();
turunan1.TampilkanPaus(); generalx.TampilkanPaus(); 3. sInput dibaca pada satu
break; generalx.TampilkanCheetah(); baris program
case 2: generalx.TampilkanSapi(); 4. int i didefinisikan sebagai
generalx.KelasMamalia(); integer yang memuat
inputan angka pada
turunan2.TampilkanCheetah(); “sInputan”
break;
5. switch(i) perintah
case 3: digunakannya pemilihan
case / switch(i){}
generalx.KelasMamalia();
turunan3.TampilkanSapi(); 6. berisi 3 pilihan (case) yang
menampilkan overloading
break; method terdiri dari objek
default: baru SubClass.SuperClass
System.out.println("Pilihan yang anda masukan salah!"); super class : generalx
break; sub class : turunan1 ,
turunan2, turunan3
} overloading method :
} TampilkanPaus(),
TampilkanCheetah(),
} TampilkanSapi().
7. Pilihan 4 – keatas akan
mencetak Pilihan yang
anda masukan salah
b. Kode program dalam bentuk listing program
6. Output program dari no. 1 – 5 dengan PowerShell:

Kesimpulannya dalam pembuatan inheritance (pewarisan) diperlukan sebuah switch-case yang memiliki
kekurangan. Hanya bisa memilih satu class saja. Tidak memerlukan perulangan pada program.
1. ACTIVITY 3.2 POLIMORFISME
Semua program disimpan dalam satu folder
(C:\Users\DELL\OneDrive\Desktop\Javaprogram\Sekelompok Hewan)
Command Prompt / Commmand Line Interface
cd C:\Users\DELL\OneDrive\Desktop\Javaprogram\Sekelompok Hewan
javac suarahewan.java
java suara hewan

Kode program dalam bentuk file hewan.java

Nama class hewan


class hewan {
public void suara (){ Overloading method
System.out.println("Hewan bersuara :"); tanpa parameter
}
} Overloading void Digunakan untuk mencetak
suara(); program bertipe data string Method view public void
suara();
a. Kode program dalam bentuk listing program

Belum ada output program, dikarenakan kelas hewan hanya sebagai penampung file dari file lainnya.
Beralih ke file kuda.java
2.
Nama class kuda dengan cara
a. Kode program dalam bentuk file kuda.java
“extends” / pewarisan kelas dari
class hewan
public class kuda extends hewan{
public void suara(){
System.out.println("Kuda mengikik..."); Overloading method
} tanpa parameter
} Overloading void
suara();
Digunakan untuk mencetak
Method view public void
program bertipe data string
suara();

b. Kode program dalam bentuk listing program


Superclass :hewan
Subclass : kuda
Belum ada output program, dikarenakan kelas hewan hanya sebagai penampung file kuda yang
akan diwariskan ke file lainnya. Beralih ke file kucing.java
Nama class kucing dengan cara
3. “extends” / pewarisan kelas dari
a. Kode program dalam bentuk file kucing.java class hewan
public class kucing extends hewan{
public void suara(){ Overloading method
System.out.println("Kucing mengeong..."); tanpa parameter
}
} Overloading void Digunakan untuk mencetak
suara(); program bertipe data string Method view public void
suara();
b. Kode program dalam bentuk listing program

Superclass :hewan
Subclass : kucing

Belum ada output program, dikarenakan kelas hewan hanya sebagai penampung file kuda yang akan
diwariskan ke file kucing. Beralih ke file ayam.java
Nama class ayam dengan cara
4.
“extends” / pewarisan kelas dari
a. Kode program dalam bentuk file ayam.java
class hewan
public class ayam extends hewan{
public void suara(){ Overloading method
System.out.println("Ayam berkokok..."); tanpa parameter
}
} Method view public void
Overloading void Digunakan untuk mencetak
suara(); program bertipe data string suara();

b. Kode program dalam bentuk listing program Superclass :hewan


Subclass : ayam

Belum ada output program, dikarenakan kelas hewan hanya sebagai penampung file kuda yang akan
diwariskan ke file kucing dan diwariskan lagi ke file ayam. Beralih ke file suarahewan.java
Method ada 4
HEWAN.suara();
5.
a. Kode program dalam bentuk file suarahewan.java
public class suarahewan{
Nama class suarahewan
public static void main(String[] args){
hewan HEWAN = new hewan();
kuda KUDA = new kuda();
kucing KUCING = new kucing(); Run || debug untuk seluruh
ayam AYAM = new ayam(); program dari 1 – 4 tanpa
harus memiliki sebuah paket
HEWAN.suara();
Konstruktor ada empat
HEWAN = KUDA; hewan HEWAN = new hewan();
HEWAN.suara(); kuda KUDA = new kuda();
kucing KUCING = new kucing(); hewan dideklarasikan sebagai objek baru
ayam AYAM = new ayam(); yaitu “HEWAN”
HEWAN = KUCING; kuda dideklarasikan sebagai objek baru yaitu
HEWAN.suara(); “KUDA”
kucing dideklarasikan sebagai objek baru
HEWAN = AYAM; yaitu “KUCING”
HEWAN.suara(); HEWAN sebagai superclass dan suara ayam dideklarasikan sebagai objek baru yaitu
sebagai subclass (KUDA, KUCING, dan “AYAM”
}
AYAM). Selalu diakhiri dengan
}
HEWAN.suara();

b. Kode program dalam bentuk listing program

Kesimpulan : perbedaan dari inheritance(pewarisan) lebih memilih satu class pilihan saja,
sedangkan polimorfisme semua class dipilh dan dicetak di satu layar output. Tanpa adanya
perulangan dan dicetak di satu dalam jumlah yang banyak. Mengambil beberapa objek tanpa
harus menduplikasi objek lainnya.
Tampilan output dari ACTIVITY 3.2 POLIMORFISME

Compile file
suarahewan.java

Menjalankan class utama, yaitu


class suarahewan

1. ACTIVITY 3.3 INTERFACES


Semua program disimpan dalam satu folder
(C:\Users\DELL\OneDrive\Desktop\Javaprogram\Senjataperang)
Command Prompt / Commmand Line Interface
cd C:\Users\DELL\OneDrive\Desktop\Javaprogram\Senjataperang
javac Tester.java
java Tester
a. Kode program dalam bentuk file OpsiSenjata.java
public interface OpsiSenjata{ Nama interface
public void tembaksenjata(); OpsiSenjata{}
public void reloadsenjata();
public void tukarSenjata(int kodesenjata);
}
Method overloading tanpa parameter
public void tembaksenjata();
public void reloadsenjata();
Bentuk umum interface :

public interface [InterfaceName]{ Method overloading dengan parameter (int


//beberapa method tanpa isi kodesenjata);
} public void tukarSenjata(int
kodesenjata);
public void reloadsenjata();

b. Kode program dalam bentuk listing program

Belum ada output program, dikarenakan kelas OpsiSenjata hanya sebagai penampung. Beralih ke file
Senjata.java
Superclass :OpsiSenjata
Subclass : Senjata

2.
a. Kode program dalam bentuk file Senjata.java
Nama class Senjata dengan cara
public class Senjata implements OpsiSenjata { mrngimplementasikan interface dari
class OpsiSenjata
int pelor= 0;
String[] senjata = {"M532", "Magnum", "M16", "AK47", "Panzerfaust"};
Senjata(int pelor){
this.pelor = pelor; Pilihan array dimulai dari
} [0..7]

public void tukarSenjata(int kodesenjata) {


System.out.println("Senjata tukar ke : " + this.senjata[kodesenjata]);
}
int pelor = 0 / kosong tipe data integer
public void tembakSenjata() { String[] senjata memuat senjata yang
if (pelor != 0) { akan dipilih
System.out.println("Dor dor dor!"); Senjata(int pelor) adalah method
this.pelor = pelor - 1; overload dengan parameter (int pelor)
} else { this.pelor = pelor,
System.out.println("Sisa Pelor Habis"); pelor yang dideklarasikan tadi
} Method dengan parameter:
} public void tukarSenjata(int kodesenjata)
public void reloadSenjata() { untuk menampilkan Senjata lainnya
System.out.println("Senjata di reload");
this.pelor = pelor + 7; Method tanpa parameter :
public void tembakSenjata()
} untuk menembak “Dor dor dor! ”
kalau habis “Sisa Pelor Habis”
}
public void reloadSenjata()
untuk mengisi pelor “Senjata di
reload”

Belum ada output program, dikarenakan kelas OpsiSenjata hanya sebagai penampung diimplementasikan
sebagai kelas Senjata. Beralih ke file Tester.java
3.
a. Kode program dalam bentuk file Tester.java Nama class Tester{}
public class Tester{
public static void main (String[] args){
Senjata Gun1 = new Senjata(7); Run | debug
Gun1.tembakSenjata();
Gun1.tembakSenjata();
Gun1.reloadSenjata(); 1 konstruktor dengan
Gun1.tukarSenjata(2); parameter
} Senjata Gun1 = new
method dengan parameter : Senjata(7);
} Gun1.tukarSenjata(2);
3 method tanpa parameter :
b. Kode program dalam bentuk listing program Gun1.tembakSenjata();
Gun1.tembakSenjata();
Gun1.reloadSenjata();

4. Hasil Output Program :


PowerShell :

Berikut tampilan Print Screennya. Terima kasih.


//Mamalia.java
//program inheritance (pewarisan)
//Pert3_Act1_Roberto Ocaviantyo Tahta Laksmana_31120049
public class Mamalia {
void KelasMamalia(){
System.out.println("Ciri umum mamalia adalah bernapas dengan paru-paru, "+"berkembang
biak dengan cara melahirkan");
}
}

//Paus.java dan Extends berguna sebagai pewarisan class dari Mamalia.java


class Paus extends Mamalia{
String x = "Ikan Paus";
void TampilkanPaus(){
System.out.println("dan Mamalia yang anda pilih adalah "+x);
System.out.println("Mamalia ini berada di laut");
System.out.println("Paus termasuk jenis mamalia terbesar");
}
}
//Cheetah.java dan Extends berguna sebagai pewarisan class dari Mamalia.java

class Cheetah extends Mamalia{


String x = "Cheetah";
void TampilkanCheetah()
{
System.out.println("dan Mamalia yang anda pilih adalah "+x);
System.out.println("Mamalia ini berada di darat");
System.out.println("Cheetah termasuk mamalia terlari tercepat");
}

}
//Sapis.java dan Extends berguna sebagai pewarisan class dari Mamalia.java

class Sapi extends Mamalia{


String x = "Sapi";
void TampilkanSapi(){
System.out.println("dan Mamalia yang anda pilih adalah "+x);
System.out.println("Mamalia ini berada di darat");
System.out.println("Sapi adalah mamalia yang diternakan");

}
}

//Turunans.java dan menggunakan IOexception sebagai alat input / output suatu program

import java.awt.*;
import java.awt.event.*;
import java.text.*;
import java.util.*;
import java.util.ArrayList;
import java.util.regex.*;
import java.util.Date.*;
import java.lang.*;
import java.applet.*;
import java.net.*;
import java.util.Scanner;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.math.RoundingMode;
import java.io.*;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.io.Console;
import java.io.InputStreamReader;
class Turunan {
public static void main(String[] args) throws IOException
{
String sInput=null;
System.out.println("====JENIS MAMALIA====");
System.out.println("1. Ikan Paus");
System.out.println("2. Cheetah");
System.out.println("3. Sapi");
System.out.println("Masukkan Pilihan [1..3] : ");
Mamalia generalx = new Mamalia();
Paus turunan1 = new Paus();
Cheetah turunan2 = new Cheetah();
Sapi turunan3 = new Sapi();

InputStreamReader inputan = new InputStreamReader (System.in);


BufferedReader jm = new BufferedReader (inputan);
sInput = jm.readLine();
int i = Integer.parseInt(sInput);
switch(i){
case 1:
generalx.KelasMamalia();
turunan1.TampilkanPaus();
break;
case 2:
generalx.KelasMamalia();
turunan2.TampilkanCheetah();
break;
case 3:
generalx.KelasMamalia();
turunan3.TampilkanSapi();
break;
default:
System.out.println("Pilihan yang anda masukan salah!");
break;
}
}
}

//Polimorfisme Activity 3.2


//hewan.java
class hewan {
public void suara (){
System.out.println("Hewan bersuara :");
}
}

//kuda.java dan Extends berguna sebagai pewarisan class dari hewan.java


public class kuda extends hewan{
public void suara(){
System.out.println("Kuda mengikik...");
}
}

//kucing.java dan Extends berguna sebagai pewarisan class dari hewan.java


public class kucing extends hewan{
public void suara(){
System.out.println("Kucing mengeong...");
}
}

//ayam.java dan Extends berguna sebagai pewarisan class dari hewan.java


public class ayam extends hewan{
public void suara(){
System.out.println("Ayam berkokok...");

}
}
//suarahewan.java
public class suarahewan{
public static void main(String[] args){
hewan HEWAN = new hewan();
kuda KUDA = new kuda();
kucing KUCING = new kucing();
ayam AYAM = new ayam();

HEWAN.suara();

HEWAN = KUDA;
HEWAN.suara();

HEWAN = KUCING;
HEWAN.suara();

HEWAN = AYAM;
HEWAN.suara();
}
}

//OpsiSenjata.java pembuatan interface beserta methodnya


public interface OpsiSenjata{
public void tembaksenjata();
public void reloadsenjata();
public void tukarSenjata(int kodesenjata);
}

//Senjata.java mengimplementasikan interface OpsiSenjata


public class Senjata implements OpsiSenjata {

int pelor= 0;
String[] senjata = {"M532", "Magnum", "M16", "AK47", "Panzerfaust"};
Senjata(int pelor){
this.pelor = pelor;
}

public void tukarSenjata(int kodesenjata) {


System.out.println("Senjata tukar ke : " + this.senjata[kodesenjata]);
}

public void tembakSenjata() {


if (pelor != 0) {
System.out.println("Dor dor dor!");
this.pelor = pelor - 1;
} else {
System.out.println("Sisa Pelor Habis");
}
}
public void reloadSenjata() {
System.out.println("Senjata di reload");
this.pelor = pelor + 7;

}
}

//menjalankan keseluruhan program interface


public class Tester{
public static void main (String[] args){
Senjata Gun1 = new Senjata(7);
Gun1.tembakSenjata();
Gun1.tembakSenjata();
Gun1.reloadSenjata();
Gun1.tukarSenjata(2);

}
Java For Beginner

ACTIVITY 4

(Mengetahui jenis exception pada kode program dan cara mengatasinya)

Format save : Pert4_Act1_nama_npm


*Tulis jawaban beserta screenshot kode program dan output pada ms.word

Berikut kode program yang harus dianalisa oleh anda. Ketik kode program berikut pada
notepad atau notepad++ kemudian simpan dengan nama belajar_eksepsi.java setelah itu
compile dan jalankan

Tentukan jenis exception yang terdapat pada kode program di atas dan berikan try- catchfinally
sehingga output menjadi sebagai berikut (Poin 20)
Setelah kode program di atas ditambahkan try-catch-finally. Tambahkan kode program berikut
di bawah finally

Kemudian compile dan jalankan, jika terdapat error, berikan try-catch-finally yang sesuai
dengan error exception yang dihasilkan kode program di atas. Sehingga output menjadiseperti
berikut (Poin 20)

Setelah selesai, lanjutkan dengan menambahkan kode program berikut

kemudian compile dan jalankan kembali. Jika terdapat error, buat try-catch-finally nya sesuai
dengan jenis error sehingga output menjadi seperti berikut. (Poin 20)
Pertanyaan

1. Jenis exception apa saja yang terdapat pada kasus di atas? (Poin 20)
2. Jelaskan masing masing jenis exception yang terdapat pada kasus di atas! (Poin 20)
Jawaban : public class belajar_eksepsi{//class utama
1. public static void main (String[] args) //compiler
{
String nilai[] = new String [3]; //tipe data string berindeks array

nilai[0] = "0"; //indeks 0 didefinisikan menjadi 0 bertipe String


nilai[1] = "1"; //indeks 1 didefinisikan menjadi 1 bertipe String
nilai[2] = "dua"; //indeks 2 didefinisikan menjadi dua bertipe String
nilai[3] = "tiga"; //indeks 3 didefinisikan menjadi tiga bertipe String

}
}
// program dijalankan pada CommandPrompt
// menuju ke C:\Users\DELL\OneDrive\Desktop\program eksepsi
// dengan mengetikkan cd C:\Users\DELL\OneDrive\Desktop\program eksepsi
// javac belajar_eksepsi.java
// java belajar_eksepsi
// hasil output berupa Macam Exception (ArrayIndexOutOfBoundsException)

Menjalankan class utama,


yaitu belajar_eksepsi.java

Mengcompile class utama


belajar_eksepsi

Macam Exception terlihat pada


compiler, yaitu
ArrayIndexOutofBoundsException
(indeks array di luar batas)
2.

public class belajar_eksepsi{//class utama


public static void main (String[] args)
{ //Compiler
try //blok program yang akan dijalankan
{
String nilai[] = new String [3]; //tipe data string berindeks array

nilai[0] = "0"; //indeks 0 didefinisikan menjadi 0 bertipe String


nilai[1] = "1"; //indeks 1 didefinisikan menjadi 1 bertipe String
nilai[2] = "dua"; //indeks 2 didefinisikan menjadi dua bertipe String
nilai[3] = "tiga"; //indeks 3 didefinisikan menjadi tiga bertipe String

}
catch(ArrayIndexOutOfBoundsException e)//blok program antisipasi error yang
terjadi pada try
{
System.out.println("ini blok program catch karena try mengalami error");
}
finally //blok program default yang akan dijalankan baik program error atau tidak
{
System.out.println("kode program try dilewati");
}
}
}
// program dijalankan pada CommandPrompt
// menuju ke C:\Users\DELL\OneDrive\Desktop\program eksepsi
// dengan mengetikkan cd C:\Users\DELL\OneDrive\Desktop\program eksepsi
// javac belajar_eksepsi.java
// java belajar_eksepsi
// hasil output berupa Macam Exception (ArrayIndexOutOfBoundsException)
Hasil Output Menggunakan try-catch-finally :

Menjalankan class utama,


yaitu belajar_eksepsi.java

Mengcompile class utama


belajar_eksepsi

Error berhasil dilewati dengan menjalankan keyword


catch dan finally untuk menampilkan
1. ini blok program catch karena try
mengalami error
2. kode program try dilewati

3.

public class belajar_eksepsi{//class utama


public static void main (String[] args)
{ //Compiler
try //blok program yang akan dijalankan
{
String nilai[] = new String [3]; //tipe data string berindeks array

nilai[0] = "0"; //indeks 0 didefinisikan menjadi 0 bertipe String


nilai[1] = "1"; //indeks 1 didefinisikan menjadi 1 bertipe String
nilai[2] = "dua"; //indeks 2 didefinisikan menjadi dua bertipe String
nilai[3] = "tiga"; //indeks 3 didefinisikan menjadi tiga bertipe String

}
catch(ArrayIndexOutOfBoundsException e)//blok program antisipasi error yang
terjadi pada try
{
System.out.println("ini blok program catch karena try mengalami error");
//mencetak kalimat 1
}
finally //blok program default yang akan dijalankan baik program error atau tidak
{
System.out.println("kode program try dilewati"); //mencetak kalimat 2
}
try //blok program yang akan dijalankan
{
String nilai[] = new String [3]; //tipe data string berindeks array
int hasil = Integer.parseInt(nilai[2]);// indeks 2 didefinisikan menjadi
pembacaaan integer pada hasil
}
catch (NumberFormatException e)//blok program antisipasi error yang terjadi pada
try
{
System.out.println("try kedua juga gagal"); //mencetak kalimat 3
}
finally //blok program default yang akan dijalankan baik program error atau tidak
{
System.out.println("kode program try kedua dilewati"); //mencetak kalimat 4
}
}
}
// program dijalankan pada CommandPrompt
// menuju ke C:\Users\DELL\OneDrive\Desktop\program eksepsi
// dengan mengetikkan cd C:\Users\DELL\OneDrive\Desktop\program eksepsi
// javac belajar_eksepsi.java
// java belajar_eksepsi
// hasil output berupa Macam Exception (ArrayIndexOutOfBoundsException)

Menjalankan class utama,


yaitu belajar_eksepsi.java

Mengcompile class utama


belajar_eksepsi

Error berhasil dilewati dengan menjalankan keyword


catch dan finally untuk menampilkan
1. ini blok program catch karena try
mengalami error
2. kode program try dilewati
3. try kedua juga gagal
4. kode program try kedua dilewati

Jenis Exception sejauh ini terdapat 2 , yaitu :


1) ArrayIndexOutofBounds, indeks array di luar batas.
2) NumberFormatException, konversi yang tidak sah dari string ke format numerik.
4.
public class belajar_eksepsi{//class utama
public static void main (String[] args)
{ //Compiler
try //blok program yang akan dijalankan
{
String nilai[] = new String [3]; //tipe data string berindeks array

nilai[0] = "0"; //indeks 0 didefinisikan menjadi 0 bertipe String


nilai[1] = "1"; //indeks 1 didefinisikan menjadi 1 bertipe String
nilai[2] = "dua"; //indeks 2 didefinisikan menjadi dua bertipe String
nilai[3] = "tiga"; //indeks 3 didefinisikan menjadi tiga bertipe String

}
catch(ArrayIndexOutOfBoundsException e)//blok program antisipasi error yang
terjadi pada try dengan jenis ArrayIndexOutofBoundsException
{
System.out.println("ini blok program catch karena try mengalami error");
//mencetak kalimat 1
}
finally //blok program default yang akan dijalankan baik program error atau tidak
{
System.out.println("kode program try dilewati"); //mencetak kalimat 2
}
try //blok program yang akan dijalankan
{
String nilai[] = new String [3]; //tipe data string berindeks array
int hasil = Integer.parseInt(nilai[2]);// indeks 2 didefinisikan menjadi
pembacaaan integer pada hasil
}
catch (NumberFormatException e)//blok program antisipasi error yang terjadi pada
try dengan jenis NumberFormatException
{
System.out.println("try kedua juga gagal"); //mencetak kalimat 3
}
finally //blok program default yang akan dijalankan baik program error atau tidak
{
System.out.println("kode program try kedua dilewati"); //mencetak kalimat 4
}
try //blok program yang akan dijalankan
{
String nilai[] = new String [3]; //tipe data string berindeks array
int a = Integer.parseInt(nilai[0]); //indeks 0 didefinisikan menjadi
pembacaaan integer pada a
int b = Integer.parseInt(nilai[1]); //indeks 1 didefinisikan menjadi
pembacaaan integer pada b

int hasil = b / a; //perhitungan hasil didefinisikan sebagai b dibagi a


}
catch (NumberFormatException e)//blok program antisipasi error yang terjadi pada
try dengan jenis NumberFormatException
{
System.out.println ("try ketiga gagal"); //mencetak kalimat 5
}
finally //blok program default yang akan dijalankan baik program error atau tidak
{
System.out.println("semuanya try gagal"); //mencetak kalimat 6
}
}
}
// program dijalankan pada CommandPrompt
// menuju ke C:\Users\DELL\OneDrive\Desktop\program eksepsi
// dengan mengetikkan cd C:\Users\DELL\OneDrive\Desktop\program eksepsi
// javac belajar_eksepsi.java
// java belajar_eksepsi
// hasil output berupa Macam Exception (ArrayIndexOutOfBoundsException)

Menjalankan class utama,


yaitu belajar_eksepsi.java

Mengcompile class utama


belajar_eksepsi

Error berhasil dilewati dengan menjalankan keyword


catch dan finally untuk menampilkan
1. ini blok program catch karena try
mengalami error
2. kode program try dilewati
3. try kedua juga gagal
4. kode program try kedua dilewati
5. try ketiga gagal
6. semuanya try gagal

Pertanyaan :
1. Jenis Exception yang terdapat pada kasus diatas adalah :
-ArrayIndexOutofBoundsException.
- NumberFormatException.

- NumberFormatException.

2. Penjelasan dari ketiga eksepsi diatas :

1) ArrayIndexOutofBoundsException, indeks array di luar batas.


2) NumberFormatException, konversi yang tidak sah dari string ke format numerik.
3) NumberFormatException, konversi yang tidak sah dari string ke format numerik.
TABEL INFORMASI

NO KATA PENJELASAN
1. Try Blok program yang akan
dijalankan.
2. Catch Blok program antisipasi error
yang terjadi pada try.
3. Finally Blok program default yang
akan dijalankan baik program
error atau tudak.
4. ArithmeticException Kesalahan Aritmatik.
5. IndexOutofBoundsException Indeks di luar batas.
6. ArrayIndexOutBoundsException Indeks array di luar batas.
7. NullPointerException Penggunaan null yang tidak
sah.
8. ArrayStoreException Pemberian nilai ke elemen
array tidak sesuai dengan
tipenya.
9. NumberFormatException Konversi yang tidak sah dari
String ke format Numerik.
1 public class belajar_eksepsi{//class utama
2 public static void main (String[] args)
3 { //Compiler
4 try //blok program yang akan dijalankan
5 {
6 String nilai[] = new String [3]; //tipe data string berindeks array
7
8 nilai[0] = "0"; //indeks 0 didefinisikan menjadi 0 bertipe String
9 nilai[1] = "1"; //indeks 1 didefinisikan menjadi 1 bertipe String
10 nilai[2] = "dua"; //indeks 2 didefinisikan menjadi dua bertipe String
11 nilai[3] = "tiga"; //indeks 3 didefinisikan menjadi tiga bertipe String
12
13 }
14 catch(ArrayIndexOutOfBoundsException e)//blok program antisipasi error yang terjadi
pada try dengan jenis ArrayIndexOutOfBoundsException
15 {
16 System.out.println("ini blok program catch karena try mengalami error");
//mencetak kalimat 1
17 }
18 finally //blok program default yang akan dijalankan baik program error atau tidak
19 {
20 System.out.println("kode program try dilewati"); //mencetak kalimat 2
21 }
22 try //blok program yang akan dijalankan
23 {
24 String nilai[] = new String [3]; //tipe data string berindeks array
25 int hasil = Integer.parseInt(nilai[2]); //indeks 2 didefinisikan menjadi
pembacaaan integer pada hasil
26 }
27 catch (NumberFormatException e)//blok program antisipasi error yang terjadi pada
try dengan jenis NumberFormatException
28 {
29 System.out.println("try kedua juga gagal"); //mencetak kalimat 3
30 }
31 finally //blok program default yang akan dijalankan baik program error atau tidak
32 {
33 System.out.println("kode program try kedua dilewati"); //mencetak kalimat 4
34 }
35 try //blok program yang akan dijalankan
36 {
37 String nilai[] = new String [3];
38 int a = Integer.parseInt(nilai[0]); //indeks 0 didefinisikan menjadi pembacaaan
integer pada a
39 int b = Integer.parseInt(nilai[1]); //indeks 1 didefinisikan menjadi pembacaaan
integer pada b
40
41 int hasil = b / a; //perhitungan hasil didefinisikan sebagai b dibagi a
42 }
43 catch (NumberFormatException e)//blok program antisipasi error yang terjadi pada
try dengan jenis NumberFormatException
44 {
45 System.out.println ("try ketiga gagal"); //mencetak kalimat 5
46 }
47 finally //blok program default yang akan dijalankan baik program error atau tidak
48 {
49 System.out.println("semuanya try gagal"); //mencetak kalimat 6
50 }
51 }
52 }
53 // program dijalankan pada CommandPrompt
54 // menuju ke C:\Users\DELL\OneDrive\Desktop\program eksepsi
55 // dengan mengetikkan cd C:\Users\DELL\OneDrive\Desktop\program eksepsi
56 // javac belajar_eksepsi.java
57 // java belajar_eksepsi
58 // hasil output berupa Macam Exception (ArrayIndexOutOfBoundsException)
Jika nama parameter dan nama data didalam kelas memiliki nama yang sama, dapat digunakan kata
kunci :

Select one:

a. Return

b. Class

c. Void

d. This

Feedback

The correct answer is: This

Method yang mengembalikan nilai pada java adalah :

Select one:

a. Fungsi

b. Class

c. Prosedur

d. Object

Feedback

The correct answer is: Prosedur

Kata kunci yang digunakan dalam method prosedur adalah :

Select one:

a. Class

b. This

c. Void

d. Return

Feedback

The correct answer is: Void

Nama harus diawali dengan huruf besar merupakan aturan untuk penamaan :
Select one:

a. Atribut

b. Modifier

c. Class

d. Object

Feedback

The correct answer is: Object

Didalam java terdapat dua buah method, yaitu fungsi dan prosedur. Fungsi adalah :

Select one:

a. Method yang tidak menggunakan return

b. Method yang tidak mengembalikan nilai

c. Method yang memiliki nilai balik

d. Method yang menggunakan kata kunci void

The correct answer is: Method yang memiliki nilai balik

Representasi nyata dari sebuah kelas disebut :

Select one:

a. Atribut

b. Instance

c. Modifier

d. Method

Feedback

The correct answer is: Instance

Nama harus diawali dengan huruf kecil merupakan aturan untuk penamaan :

Select one:

a. Modifier

b. Atribut
c. Class

d. Object

Feedback

The correct answer is: Class

Dibawah ini merupakan data yang dimiliki oleh objek manusia, kecuali :

Select one:

a. Cara bicara

b. Tinggi badan

c. Nama

d. Jenis kelamin

Feedback

The correct answer is: Cara bicara

Tingkah laku yang dimiliki oleh objek disebut :

Select one:

a. Atribut

b. Method

c. Class

d. This

Feedback

The correct answer is: Method

Karakteristik yang dimiliki oleh objek disebut :

Select one:

a. Modifier

b. Object

c. Atribut

d. This
Feedback

The correct answer is: Atribut

Yang termasuk kedalam method untuk kelas hewan adalah …

Select one:

a. Kedua jawaban benar

b. Cara berkembangbiak

c. cara mencari makan

d. Kedua jawaban salah

Feedback

The correct answer is: Kedua jawaban benar

Dibawah ini adalah keuntungan yang didapat dengan menggunakan pemrograman berorientasi objek,
kecuali :

Select one:

a. Reuseable

b. Program lebih terstruktur

c. Kedua jawaban benar

d. Kedua jawaban salah

Feedback

The correct answer is: Kedua jawaban benar

Yang bukan merupakan modifier akses adalah :

Select one:

a. Public

b. Final

c. Default

d. Private

Feedback
The correct answer is: Final

Sifat yang dimiliki oleh setiap atribut disebut :

Select one:

a. Modifier

b. Class

c. Object

d. This

Feedback

The correct answer is: Modifier

Berikut adalah contoh objek :

Select one:

a. Kedua jawaban benar

b. Tumbuhan

c. Kedua jawaban salah

d. Hewan

Feedback

The correct answer is: Kedua jawaban benar

Yang bukan merupakan ciri-ciri default constructor adalah :

Select one:

a. Dibuat secara manual

b. Memiliki parameter formal

c. Kedua jawaban benar

d. Kedua jawaban salah


Acces modifier untuk public modifier dapat diakses oleh :

Select one:

a. Tidak bisa diterapkan pada class, interface, method dan variabel

b. Kadang bisa kadang tidak

c. Class dan interface, method dan variable yang sepaket

d. Class dan interface, method dan variable dimanapun

Acces modifier untuk private modifier dapat diakses oleh :

Select one:

a. Tidak bisa diterapkan pada class, interface, method dan variabel manapun

b. Class, interface, method dan variabel yang sepaket

c. Kadang bisa kadang tidak

d. Class, interface, method dan variabel dimanapun

Acces Modifier yang diwarisi oleh subkelasnya dan dapat diakses oleh method-method yang sepaket
adalah :

Select one:

a. Protected

b. Public

c. Default

d. Private

Yang bukan merupakan sifat-sifat constructor adalah :

Select one:

a. Semua jawaban salah

b. Tidak memiliki return value

c. Tidak boleh memiliki dari 1 constructor


d. Sama dengan nama kelas

Acces Modifier yang tidak dapat diakses di class dan method manapun adalah :

Select one:

a. Public

b. Private

c. Protected

d. Default

Pendefinisian method yang lebih dari satu dalam satu class disebut :

Select one:

a. Overloading Constructor

b. Overloading Method

c. Modifier

d. Object

Keyword yang digunakan untuk menentukan spesifikasi tingkat akses suatu variabel atau method
disebut :

Select one:

a. Konstruktor

b. Overloading Method

c. Overriding Method

d. Access Modifier

Acces Modifier yang dapat diwarisi oleh subkelas dipaket yang sama dan dapat diakses oleh method-
method yang sepaket adalah :

Select one:

a. Default

b. Public

c. Protected
d. Private

Pendeklarasian constructor yang menggunakan parameter :

Select one:

a. [modifier] nama_class(){//parameter}

b. [modifier] nama_class(parameter)

c. [modifier] nama_class()

d. [modifier] nama_class(){//statement}

Yang merupakan ciri-ciri dari default constructor adalah :

Select one:

a. Dibuat secara otomatis saat class di kompilasi

b. Tidak memiliki parameter formal

c. Kedua jawaban benar

d. Kedua jawaban salah

Acces modifier yang berupa default modifier dapat diakses oleh :

Select one:

a. Kadang bisa kadang tidak

b. Tidak bisa diterapkan pada class, interface, method dan variabel

c. Class, interface, method, variabel dimanapun

d. Class, interface, method dan variabel yang sepaket

Acces Modifier yang diwarisi oleh subkelasnya dan dapat diakses dimanapun adalah :

Select one:

a. Private

b. Protected

c. Public

d. Default
Yang merupakan syarat-syarat overloading adalah :

Select one:

a. Overloading tidak bisa dilakukan pada sub kelasnya

b. Overloading bisa dilakukan pada sub kelas

c. Tidak diperbolehkan lebih dari satu method

d. Overloading bisa dilakukan dengan memberdakan nilai kembalinya

Method khusus yang didefinisikan didalam kelas dan akan dipanggil secara otomatis setiap kali terjadi
instansiasi objek disebut :

Select one:

a. Object

b. Constructor

c. Method

d. Class

Suatu cara untuk mendefinisikan ulang method yang ada pada class induk apabila class anak
menginginkan adanya informasi yang lain :

Select one:

a. Overriding

b. Overfunction

c. Overloading

d. Overcode

Berikut ini pernyataan yang benar mengenai Inheritance dalam java, kecuali :

Select one:

a. Java mendukung multiple-inheritance

b. Untuk menyatakan inheritance digunakan keyword extends

c. Object dalam superclass menjadi milik subclass juga


d. Sebuah class dapat memiliki turunan lebih dari satu

Syntax dasar untuk membuat interfaces pada java adalah :

Select one:

a. public interfaces [namainterfaces] {//beberapa method tanpa isi}

b. public static interfaces [namainterfaces] {//beberapa method tanpa isi}

c. public int interfaces [namainterfaces] {//beberapa method tanpa isi}

d. public void [namainterfaces] {//beberapa method tanpa isi}

Penulisan beberapa fungsi (dua atau lebih) yang memiliki nama yang sama :

Select one:

a. Overcode

b. Overloading

c. Overfunction

d. Overriding

Pemanggilan metode superkelas dari subkelas menggunakan sintaks :

Select one:

a. nm_metode( )

b. superclass.nm_metode( )

c. super.nm_metode( )

d. super nm_metode( )

Keyword yang digunakan untuk memanggil konstruktor dari super class atau memanggil variable yang
mengacu pada super class :

Select one:

a. Extends

b. Import

c. Implements
d. Super

Pada polimorfisme kondisi yang harus terpenuhi supaya fungsi dapat dijalankan yaitu kecuali :

Select one:

a. Method access attribute pada subclass boleh lebih terbatas daripada yang ada

b. Method yang dipanggil juga harus merupakan method yang ada pada super class

c. Method yang dipanggil harus melalui variabel dari super class.

d. Semua kelas diturunkan dari suatu kelas yang sama

Class A adalah turunan dari class B. Maka class A disebut sebagai :

Select one:

a. Child Class

b. Sub Class

c. Mini Class

d. Lower Class

Berikut ini penamaan class di java yang diperbolehkan :

Select one:

a. Semua jawaban Benar

b. Customer

c. TowerOfHanoy

d. Scanner

Keyword yang digunakan untuk menunjukkan, bahwa suatu class merupakan turunan dari class lain :

Select one:

a. Inheritance

b. Child

c. Parent

d. Extends
Pemrograman berorientasi objek mencakup keaneka ragaman objek yang menjamin terhimpunnya
perpaduan keaneka ragaman antara data dengan prosedur atau fungsi, adalah :

Select one:

a. Inheritance

b. Polymorphism

c. Enkapsulasi

d. Semua jawban salah

Dalam konsep OO, setiap object memiliki behaviour. Apa yang dimaksud behaviour ?

Select one:

a. Kedua jawaban salah

b. Method

c. Identifier

d. Kedua jawaban benar

Detail dari method berada pada :

Select one:

a. Class yang mengimplementasikan method tersebut

b. Class yang mengimplementasikan superclass tersebut

c. Class yang mengimplementasikan konstruktor tersebut

d. Class yang mengimplementasikan interfaces tersebut

Class A adalah turunan dari class B. Maka class B disebut sebagai :

Select one:

a. Super Class

b. Upper Class

c. Derived Class

d. High Class
Class yang hanya mengandung deklarasi method tanpa memiliki implementasi dan semua property yang
dimilikinya bersifat final adalah :

Select one:

a. final method

b. void final

c. Interfaces

d. Semua jawaban salah


Jika nama parameter dan nama data didalam kelas memiliki nama yang sama, dapat digunakan kata
kunci :

Select one:

a. Return

b. Class

c. Void

d. This

Feedback

The correct answer is: This

Method yang tidak mengembalikan nilai pada java adalah :

Select one:

a. Fungsi

b. Class

c. Prosedur

d. Object

Feedback

The correct answer is: Prosedur

Kata kunci yang digunakan dalam method prosedur adalah :

Select one:

a. Class

b. This

c. Void

d. Return

Feedback

The correct answer is: Void

Nama harus diawali dengan huruf kecil merupakan aturan untuk penamaan :
Select one:

a. Atribut

b. Modifier

c. Class

d. Object

Feedback

The correct answer is: Object

Didalam java terdapat dua buah method, yaitu fungsi dan prosedur. Fungsi adalah :

Select one:

a. Method yang tidak menggunakan return

b. Method yang tidak mengembalikan nilai

c. Method yang memiliki nilai balik

d. Method yang menggunakan kata kunci void

The correct answer is: Method yang memiliki nilai balik

Representasi nyata dari sebuah kelas disebut :

Select one:

a. Atribut

b. Instance

c. Modifier

d. Method

Feedback

The correct answer is: Instance

Nama harus diawali dengan huruf besar merupakan aturan untuk penamaan :

Select one:

a. Modifier

b. Atribut
c. Class

d. Object

Feedback

The correct answer is: Class

Dibawah ini merupakan data yang dimiliki oleh objek manusia, kecuali :

Select one:

a. Cara bicara

b. Tinggi badan

c. Nama

d. Jenis kelamin

Feedback

The correct answer is: Cara bicara

Tingkah laku yang dimiliki oleh objek disebut :

Select one:

a. Atribut

b. Method

c. Class

d. This

Feedback

The correct answer is: Method

Karakteristik yang dimiliki oleh objek disebut :

Select one:

a. Modifier

b. Object

c. Atribut

d. This
Feedback

The correct answer is: Atribut

Yang termasuk kedalam method untuk kelas hewan adalah, kecuali :

Select one:

a. Jenis kelamin hewan

b. Cara berkembangbiak

c. cara mencari makan

d. Cara bertahan hidup

Feedback

The correct answer is: Jenis kelamin hewan

Dibawah ini adalah keuntungan yang didapat dengan menggunakan pemrograman berorientasi objek,
kecuali :

Select one:

a. Reuseable

b. Program lebih terstruktur

c. Bersifat natural

d. Program tidak terstruktur

Feedback

The correct answer is: Program tidak terstruktur

Yang bukan merupakan modifier akses adalah :

Select one:

a. Public

b. Final

c. Default

d. Private

Feedback
The correct answer is: Final

Sifat yang dimiliki oleh setiap atribut disebut :

Select one:

a. Modifier

b. Class

c. Object

d. This

Feedback

The correct answer is: Modifier

Berikut adalah contoh objek, kecuali :

Select one:

a. Singa

b. Tumbuhan

c. Manusia

d. Hewan

Feedback

The correct answer is: Singa

Acces modifier untuk public modifier dapat diakses oleh :

Select one:

a. Tidak bisa diterapkan

b. Kadang bisa kadang tidak

c. Class dan interface dimanapun

d. Class dan interface yang sepaket

Feedback

The correct answer is: Class dan interface dimanapun


Yang bukan merupakan sifat-sifat constructor adalah :

Select one:

a. Memiliki return value

b. Tidak memiliki tipe data termasuk void

c. Tidak memiliki return value

d. Nama Constructor sama dengan nama class

Feedback

The correct answer is: Memiliki return value

Acces Modifier yang diwarisi oleh subkelas dipaket yang sama dan dapat diakses oleh method-method
yang sepaket adalah :

Select one:

a. Protected

b. Public

c. Private

d. Default

Feedback

The correct answer is: Default

Keyword yang digunakan untuk menentukan spesifikasi tingkat akses suatu variabel atau method
disebut :

Select one:

a. Access Modifier

b. Object

c. Overloading Method

d. Class

Feedback

The correct answer is: Access Modifier


Method khusus yang didefinisikan didalam kelas dan akan dipanggil secara otomatis setiap kali terjadi
instansiasi objek disebut :

Select one:

a. Object

b. Method

c. Constructor

d. Class

Feedback

The correct answer is: Constructor

Overloading method merupakan pendefinisian lebih satu method dalam satu :

Select one:

a. Class

b. Object

c. Method

d. Modifier

Feedback

The correct answer is: Class

Yang bukan merupakan ciri-ciri dari default constructor adalah :

Select one:

a. Tidak memiliki parameter formal

b. Memiliki parameter formal

c. Dibuat secara otomatis jika tidak mempunyai construktor

d. Dibuat secara otomatis saat class di kompilasi

Feedback

The correct answer is: Memiliki parameter formal


Yang bukan merupakan syarat-syarat overloading adalah :

Select one:

a. Overloading tidak bisa dilakukan dengan memberdakan nilai kembalinya

b. Overloading tidak bisa dilakukan pada sub kelas

c. Diperbolehkan lebih dari satu method

d. Overloading bisa dilakukan pada sub kelasnya

Feedback

The correct answer is: Overloading tidak bisa dilakukan pada sub kelas

Acces Modifier yang tidak dapat diakses di class dan method manapun adalah :

Select one:

a. Protected

b. Private

c. Public

d. Default

Feedback

The correct answer is: Private

Yang merupakan ciri-ciri default constructor adalah :

Select one:

a. Semua benar

b. Memiliki parameter formal

c. Tidak memiliki parameter formal

d. Dibuat secara manual

Feedback

The correct answer is: Tidak memiliki parameter formal


Acces Modifier yang diwarisi oleh subkelasnya dan dapat diakses dimanapun adalah :

Select one:

a. Default

b. Public

c. Protected

d. Private

Feedback

The correct answer is: Public

Acces modifier berupa default modifier dapat diakses oleh :

Select one:

a. Class dan interface dimanapun

b. Kadang bisa kadang tidak

c. Tidak bisa diterapkan

d. Class dan interface yang sepaket

Feedback

The correct answer is: Class dan interface yang sepaket

Acces Modifier yang diwarisi oleh subkelasnya dan dapat diakses oleh method-method yang sepaket
adalah :

Select one:

a. Private

b. Protected

c. Public

d. Default

Feedback

The correct answer is: Protected


Acces modifier untuk private modifier dapat diakses oleh :

Select one:

a. Class dan interface dimanapun

b. Tidak bisa diterapkan pada class dan interface

c. Class dan interface yang sepaket

d. Kadang bisa kadang tidak

Feedback

The correct answer is: Tidak bisa diterapkan pada class dan interface

Pendeklarasian constructor yang menggunakan parameter :

Select one:

a. [modifier] nama_class()

b. [modifier] nama_class(){//statement}

c. [modifier] nama_class(parameter)

d. [modifier] nama_class(){//parameter}

Feedback

The correct answer is: [modifier] nama_class(parameter)

Class A adalah turunan dari class B. Class B sering disebut sebagai :

Select one:

a. Derived Class

b. Child Class

c. Lower Class

d. Super Class

Feedback

The correct answer is: Super Class


Berikut ini pernyataan yang benar mengenai Inheritance dalam java, kecuali :

Select one:

a. Sebuah class dapat memiliki turunan lebih dari satu

b. Object dalam superclass menjadi milik subclass juga

c. Java mendukung multiple-inheritance

d. Untuk menyatakan inheritance digunakan keyword extends

Feedback

The correct answer is: Java mendukung multiple-inheritance

Suatu cara untuk mendefinisikan ulang method yang ada pada class induk apabila class anak
menginginkan adanya informasi yang lain :

Select one:

a. Overhead

b. OverrRead

c. Overriding

d. Overloading

Feedback

The correct answer is: Overriding

Dalam konsep OO, setiap object memiliki behaviour. Apa yang dimaksud behaviour ?

Select one:

a. Variabel

b. Semua Benar

c. Method

d. Identifier

Feedback

The correct answer is: Method


Keyword yang digunakan untuk menunjukkan, bahwa suatu class merupakan turunan dari class lain :

Select one:

a. Child

b. Extends

c. Parent

d. Inheritance

Feedback

The correct answer is: Extends

Penulisan beberapa fungsi (dua atau lebih) yang memiliki nama yang sama :

Select one:

a. Overloading

b. Overriding

c. Overhead

d. OverrRead

Feedback

The correct answer is: Overloading

Class yang digunakan untuk menunjukkan class anak atau turunan secara hirarkis dari super class :

Select one:

a. Child Class

b. Sub Class

c. Super

d. Super Class

Feedback

The correct answer is: Sub Class


Class yang hanya mengandung deklarasi method tanpa memiliki implementasi dan semua property yang
dimilikinya bersifat final adalah :

Select one:

a. Semua Salah

b. Interfaces

c. void final

d. final method

Feedback

The correct answer is: Interfaces

Berikut ini penamaan class di java yang diperbolehkan :

Select one:

a. Customer

b. Scanner

c. TowerOfHanoy

d. Semua Benar

Feedback

The correct answer is: Semua Benar

Keyword yang digunakan untuk memanggil konstruktor dari super class atau memanggil variable yang
mengacu pada super class :

Select one:

a. Import

b. Super

c. Extends

d. Implements

Feedback

The correct answer is: Super


Pada polimorfisme kondisi yang harus terpenuhi supaya fungsi dapat dijalankan yaitu kecuali :

Select one:

a. Method yang dipanggil harus melalui variabel dari super class.

b. Method yang dipanggil juga harus merupakan method yang ada pada super class

c. Method access attribute pada subclass boleh lebih terbatas daripada yang ada

d. Semua kelas diturunkan dari suatu kelas yang sama

Feedback

The correct answer is: Method access attribute pada subclass boleh lebih terbatas daripada yang ada

Class yang digunakan untuk menunjukkan class induk secara hirarkis dari sub class :

Select one:

a. Sub Class

b. Child Class

c. Super

d. Super Class

Feedback

The correct answer is: Super Class

Class A adalah turunan dari class B. Class A sering disebut sebagai :

Select one:

a. Child Class

b. Sub Class

c. Super Class

d. Derived Class

Feedback

The correct answer is: Sub Class


Syntax dasar untuk membuat interfaces pada java adalah :

Select one:

a. public static interfaces [namainterfaces] {//beberapa method tanpa isi}

b. public int interfaces [namainterfaces] {//beberapa method tanpa isi}

c. public void [namainterfaces] {//beberapa method tanpa isi}

d. public interfaces [namainterfaces] {//beberapa method tanpa isi}

Feedback

The correct answer is: public interfaces [namainterfaces] {//beberapa method tanpa isi}
CONTOH SOAL

1. Karakteristik utama bahasa pemrograman berorientasi objek,adalah :


a. Enkapsulasi c. Polymorphism
b. Inheritance d. Semua benar

2. Pemrograman berorientasi objek mencakup keaneka ragaman objek yang menjamin


terhimpunnya perpaduan keaneka ragaman antara data dengan prosedur atau fungsi, adalah :
a. Enkapsulasi c. Polymorphism
b. Inheritance d. Semua benar

3. Pada dasarnya ada 2 tipe polymorphism, yaitu:

a. Static c. a dan d benar


b. method d. Dynamic

4. Meningkatkan extensibilitas dan penggunaan kembali perangkat lunak merupakan tujuan dari :

a. Pemrograman terstruktur c. Pemrograman top down


b. Pemrogramn object oriented d. Pemrograman modular

5. Apa yang dimaksud overloading ?

a. Penggunaan satu nama untuk beberapa method yang berbeda (beda parameter)
b. Penggunaan satu nama untuk beberapa method yang sama
c. kemampuan suatu method untuk bekerja dengan lebih dari satu tipe argumen
d. ketika deklarasi method subclass dengan nama dan parameter sama

6. Terjadi ketika deklarasi method subclass dengan nama dan parameter yang sama dengan method
dari superclassnya. Merupakan penjelasan dari

a. Override c. Overloading

b. Overtime d. Oversize

7. Kelebihan polymorphism adalah, kecuali..

a. Dapat menggunakan kelas-kelas yang kita buat (sebagai super kelas)

b. Dapat membuat super kelas yang hanya mendefinisikan behaviuor

c. Menghindari duplikasi object,kita dapat menciptakan class baru dari class yang sudah ada

d. Terlalu rumit untuk dipahami


8. Static merupakan function yang terbagi dalam 3 signature yaitu:

a. Tipe array, jumlah array, nama array

b. Letak array, jenis aray, jumlah array

c. Jenis array, tipe array, letak array

d. Tipe array, letak array, jumlah array

9. Dynamic atau true adalah..

a. Penggunaan satu nama untuk beberapa method yang berbeda (beda parameter)

b. function overloading (penggunaan kembali nama fungi yang sama tapi dgn argumen yang
berbeda)

c. deklarasi method subclass dengan nama dan parameter yang sama dengan method dari
superclassnya.

d. function overriding (sebuah fungsi dalam class turunan yang memiliki nama, return type
argumen function yang sama dengan fungsi dalam class induk).

10. dari skrip berikut bagian yang ter-overload adalah ….

class Bangun {
public double hitungLuas() {
System.out.println("Method belum terdefinisi");
return 0;
}
}
class BujurSangkar extends Bangun {
private double sisi;
public double hitungLuas(double sisi) {
double luas = sisi * sisi; return luas;
}
}
class overloadBangun {
public static void main(String[] args) {
BujurSangkar b;
System.out.println("Luas BujurSangkar = " + b.hitungLuas(6)); }
}

a class Bangun {
public double hitungLuas() {
System.out.println("Method belum terdefinisi");
return 0;

b class BujurSangkar extends Bangun {


private double sisi;

c public double hitungLuas(double sisi) {


double luas = sisi * sisi; return luas;

d class overloadBangun {
public static void main(String[] args) {
BujurSangkar b;
System.out.println("Luas BujurSangkar = " + b.hitungLuas(6)); }
Fakultas Teknologi Informasi
UNIVERSITAS BUDI LUHUR

SOAL – JAWAB
Mata Kuliah : Pemrograman Berorientasi Objek

1. Sintaks java untuk melakukan kompilasi terhadap berkas program adalah :


a. java c. javaclass
b. javac d. javax
2. Diantara perintah untuk mencetak berikut, yang benar adalah ………..
a. System.out.println(“Mid Java”) c. System.out.Println(“Mid Java ”)
b. System.Out.println(“Mid Java ”) d. System.Out.Println(“Mid Java ”)
3. Stream yang berguna untuk mengirim keluaran ke layar adalah
a. System.in. c. System.err
b. System.out. d. System.exit

4. Hasil kompilasi dari berkas java adalah


a. File BAK c. File executable
b. File Bytecode d. File class
5. Fungsi method System.in dalam java adalah…
a. Mengirimkan keluaran ke layar c. Menampilkan pesan kesalahan
b. Menangani pembacaan dari d. Menangani suatu objek
keyboard
6. Diantara pernyataan berikut, konsep yang tidak ada di dalam pemrograman Java adalah…
a. Polymorphisme c. Multiple inheritance
b. Encapsulation d. Single Inheritance
7. Arsitektur java yang dipakai untuk wireless device / mobile device, disebut dengan…
a. J2SE c. J2EE
b. J2ME d. J2EM
8. Berikut adalah penamaan class pada java yang diperbolehkan, kecuali…
a. 3_One c. S13h
b. O_3ne d. B3_Ta
9. Method yang digunakan untuk mengkonversi nilai string ke integer dalam Java adalah :
a. parseInt( ) c. Cint( )
b. converseInt( ) d. ChangeInt( )
10. Diantara pernyataan berikut, penulisan sintaks BbufferredReader yang benar adalah
a. int data =BufferedReader = new BufferedReader(new input Stream
Reader(System.in)).Readline( ).intValue( );
b. int data =BufferedReader = new BufferedReader(new
InputStreamReader(System.in)).Readline( ).intValue( );
c. int data=(new Integer((new BufferedReader = new BufferedReader(new input Stream
Reader(System.in))).readline( )).intValue( ));
d. int data = (new Integer( (new BufferedReader (new InputStreamReader
(System.in))).readLine()).intValue());

11. Berikut ini yang termasuk tipe data primitive adalah…


a. Boolean c. byte
b. character d. Double
12. Berikut ini yang termasuk tipe data reference adalah…
a. float c. short
b. Character d. int
13. Keyword yang digunakan untuk membuat nilai tetap dan tidak dapat berubah adalah…
a. protected c. public
b. private d. final
14. Dari statement berikut ini manakah baris pernyataan yang tidak valid…
1. int satuAwal = 5;
2. Final boolean BW = true;
3. Char k = “T”;
4. String w=”123”;
a. 1 dan 2 c. 2 dan 3
b. 3 dan 4 d. 2 dan 4
15. Apa yang akan tercetak dari hasil penggalan program berikut ini:
1. int All;
2. int a=2, b=3, c=6, d=5;
3. All = b * d - c / a + b;
4. System.out.print (“All:”+All);
a. All:14 c. All: 15
b. All:10 d. All: 9
Untuk soal 16 dan 17, Perhatikan penggalan program berikut ini :
1. public class Ceria {
2. public static void main(String args[ ]) {
3. int a = 9; int b = 4;
4. int c= a/b;
5. }
6. }

16. Pendefinisian kelas pada program diatas terjadi pada baris ke …


a. 1 c. 3
b. 2 d. 4
17. Jika nilai variabel c ditampilkan ke layar akan menghasilkan nilai …
a. 2.25 c. 2
b. 2.3 d. 2.5
Untuk soal no. 18 dan 19, Perhatikan potongan program berikut :
1. public class Break {
2. public static void main( String args[] ) {
3. String cetak = "";
4. int x;
5. for ( x = 1; x <= 10; x++ ) {
6. if ( x == 5 )
7. break;
8. cetak = cetak + x + " ";
9. }
10. System.out.println(cetak);
11. }
12. }

18. Jika program di atas dijalankan maka akan menghasilkan keluaran …


a. 1 2 3 4 c. 1 2 3 4 5 6 7 8 9 10
b. 1 2 3 4 5 d. 1 2 3 4 5 1 2 3 4 5
19. Jika baris ke-7 dari program diubah dengan perintah continue; maka akan menghasilkan
keluaran.....
a. 1 2 3 4 c. 1 2 3 4 6 7 8 9 10
b. 1 2 3 4 5 d. 1 2 3 4 5 6 7 8 9 10
20. if ( grade > 70 )
System.out.println(“Passed”);
else
System.out.println(“Failed”);

Jika penggalan program diatas diubah dengan menggunakan operator kondisi maka hasilnya
akan menjadi …
a. System.out.println( ? grade > 70 “Passed” : “Failed” )
b. System.out.println( grade > 70 ? “Passed” : “Failed” )
c. System.out.println( grade > 70 : “Passed” ? “Failed” )
d. System.out.println( grade > 70 ? “Passed” ? : “Failed” )

21. Berikut adalah cara inisialisasi variabel bertipe class string, kecuali:
a. String me = new String(“Inisialisasi 1”);
b. String me;
me = new String “inisialisasi 1” ;
c. String me;
me = new String(“inisialisasi 1”);
d. String me;
me = “inisialisasi 1”;
22. Method yang digunakan untuk membandingkan dua buah data string adalah …
a. equal() c. length()
b. concat() d. equals()
23. Method yang digunakan untuk mengubah seluruh huruf dalam string menjadi huruf
besar/kapital adalah …
a. UpperCase() c. toUpperCase()
b. toUperCase() d. isUpperCase()
Untuk soal no. 24 dan 25, Perhatikan potongan program berikut :
1. public class Substring {
2. public static void main( String args[] ) {
3. String str = new String("MahaDewa");
4. System.out.println(str.substring(2));
5. System.out.println(str.substring(3,7));
6. }
7. }

24. Jika program di atas dijalankan maka pada baris ke 4 akan menghasilkan keluaran …
a. ahaDewa c. aDewa
b. h d. haDewa
25. Sedangkan hasil keluaran pada baris ke 5 adalah …
a. aDewa c. aDew
b. haDewa d. haDe
26. Statement yang digunakan untuk mengkonversi nilai string ke double dalam Java adalah :
a. parsedouble( ) c. parseDouble( )
b. DoubleValue( ) d. ChangeDouble( )
27. Method yang digunakan untuk mengubah panjang data StringBuffer adalah …
a. length() c. Changelength()
b. setLength() d. reverse()
28. Method yang digunakan untuk mengambil suatu karakter berdasarkan lokasi yang kita berikan
adalah …
a. toCharAt() c. charAt()
b. toCharArray () d. valueOf()
Untuk soal no. 29 dan 30, Perhatikan potongan program berikut :
1. public class Increment {
2. public static void main( String args[] ) {
3. int x = 3, y = 0;
4. y = x++ + 3 * x * x--;
5. System.out.println(y);
6. System.out.println(x);
7. }
8. }

29. Jika program di atas dijalankan maka akan menghasilkan keluaran …


a. 51 c. 51 4
4
b. 51 d. 51 3
3
30. Jika baris ke-4 diubah menjadi –-x +2 * x * ++x ; maka akan menghasilkan keluaran.....
a. 14 c. 24 4
4
b. 14 d. 24 3
3
Untuk soal no. 31, Perhatikan potongan program berikut :
1. public class Boolean {
2. public static void main(String[] args) {
3. int i = 13, j = 11;
4. boolean coba;
5. test = i > 15 || ++j > 10;
6. System.out.println(i);
7. System.out.println(j);
8. System.out.println(test);
9. }
10. }

31. Jika program di atas dijalankan maka akan menghasilkan keluaran …


a. 13 c. 13
12 12
false true
b. 13 d. 13
11 11
true false
32. Paket yang dapat digunakan untuk membuat program menggunakan class BufferedReader
adalah :
a. java.io.* c. java.swing.*
b. java.lang.* d. semua benar
Untuk soal no. 33 dan 34, Perhatikan potongan program berikut :
1. public class NestedFor {
2. public static void main(String[] args) {
3. int i, j, All;
4. for(i=1; i<=3;i++) {
5. for(j=1;j<=3;j++) {
6. All= i *j;
7. If ( i==2) break;
8. System.out.println(i + “*” + j+ “ =” + All);
9. }
10. }
11. }
12. }

33. Jika program di atas dijalankan maka pada baris ke 8 akan menghasilkan keluaran …
a. 1 * 1 = 1 b. 1 * 1 = 1 c. 1 * 1 = 1 d. 1 * 1 = 1
1*2=2 1*2=2 1*3=3 2*1=2
1*3=3 2*1=2 3*1=3
2*3=6
34. Jika baris ke-7 dari program diubah dengan perintah continue; maka akan menghasilkan
keluaran.....
a. 1 * 1 = 1 b. 1*1=1 c. 1*1=1 d. 1*1=1
1*2=2 1*3=3 1*2=2 2*2=4
1*3=3 3*1=3 1*3=3 3*3=9
3*3=9 3*1=3
3*2=6
3*3=9
35. Istilah untuk melindungi data dari usaha modofikasi, perusakan dan penggandaan data oleh
pihak yang tidak berwenang adalah ...
a. Inheritance c. Constructor
b. Polymorphisme d. Encapsulation
Untuk soal no. 36 dan 37, Perhatikan potongan program berikut :
1. public class While {
2. public static void main(String[] args) {
3. int x, All;
4. x = 1; All=1;
5. while( x<=4); {
6. All *=x;
7. System.out.println(All);
8. x ++;
9. }
10. }
11. }

36. Jika program di atas dijalankan maka akan menghasilkan keluaran …


a. 24 c. 0
b. 12 d. error
37. Proses inisialisasi pada program diatas terjadi pada baris …
a. 1 c. 4
b. 3 d. 6
Untuk soal no. 38, Perhatikan potongan program berikut :
1. public class NestedFor {
2. public static void main (String[] args) (
3. int i, j;
4. for ( i =1; i <=3; i++) {
5. for (j=1; j <= i; j++) {
6. System.our.println(“ @ “);
7. }
8. System.our.println(“ \n“);
9. }
10. }
11. }

38. Jika program di atas dijalankan maka akan menghasilkan keluaran …


a. @@@ b. @ c. @@@ d. @@
@@ @@ @@ @@@
@ @@@ @ @@@@
Untuk soal no. 39, Perhatikan potongan program berikut :
1. public class Odd {
2. public static void main(String[] args) {
3. for(int i=1; i <= 10 ; i += 2){
4. System.out.print(i + " ");
5. }
6. }
7. }

39. Jika penggalan program diatas diubah dengan menggunakan struktur perulangan do while maka
hasilnya akan menjadi …
a. int i=1; c. int i=1;
do do
{ System.out.print(i + " "); i<=10; } { System.out.print(i + " "); i=+2; }
while(i+=2) while(i<=10);

b. int i=1; d. int i=1;


do do
{ System.out.print(i + " "); i+=2; } { System.out.print(i + " "); i<=10;}
while(i<=10); while(i+=2);
40. Mana dari penggalan program dibawah ini yang valid...
a. Switch(n){ c. Switch(n){
case 1; System.out.print(“Value 1”); case 1; System.out.print(“Value 1”);
break; break;
case 2; System.out.print(“Value 2”); case 2; System.out.print(“Value 2”);
break; break;
default; System.out.print(“Value 1”); } default; System.out.print(“Value 1”);
break;}

b. switch(n){ d. switch(n){
case 1: System.out.print(“Value 1”); case 1: System.out.print(“Value 1”);
break; break;
case 2: System.out.print(“Value 2”); case 2: System.out.print(“Value 2”);
break; break;
default: System.out.print(“Value 1”);} default: System.out.print(“Value 1”);
break; }

41. Berikut ini adalah editor yang dapat digunakan untuk menuliskan program Java, kecuali...
a. JCreator c. EClipse
b. Notepad d. JavaBeans
42. Berikut ini adalah keyword yang terdapat dalam Java, kecuali...
a. Goto c. If
b. Break d. String

43. Komentar program dalam Java dapat menggunakan perintah...


a. /*...*/ saja c. // dan /*..*/
b. // saja d. #, // dan /*..*/

44. Untuk menyimpan data nim mahasiswa, tipe data yang paling tepat digunakan adalah...
a. int c. char
b. short d. String

45. Berikut ini pernyataan yang benar berhubungan dengan class dan object dalam Java, kecuali...
a. Setiap class dapat mengandung beberapa method sekaligus
b. Object merupakan instance dari class
c. Object terdiri dari keyword dan method
d. Class merupakan pendefinisian dari object

46. Suatu method yang dapat dijalankan otomatis pada saat object dari class dibuat, dikenal dengan ...
a. Constructor c. Garbage Collector
b. Initializer d. Inheritance

47. Berikut ini adalah pernyataan yang benar berhubungan dengan break dan continue, kecuali...
a. Break digunakan untuk keluar dari blok perulangan
b. Continue digunakan untuk melanjutkan ke proses perulangan berikutnya
c. Statement setelah continue tidak akan dijalankan
d. Statement setelah break tetap akan dijalankan

48. Blok dalam perintah for berikut ini akan dijalankan sebanyak 10 kali, yaitu...
a. For(int x=1; x<=9; x++) { } c. For(int x=10; x>=1; x--) { }
b. For(int x=0; x<=10; x++) { } d. For(int x=10; x>0; x--) { }

49. Berikut ini adalah hak akses yang dapat ditambahkan didepan method Java, kecuali...
a. Static c. Private
b. Public d. Protected

Perhatikan potongan program berikut :


1. public class NestedFor {
2. public static void main (String[] args) (
3. for ( i =0; i <11; i++) {
4. for (j=1; j <100; j++) {
5. System.our.println(“Meruya“);
6. }
7. }
8. }
9. }

50. Pada program diatas, akan tercetak string “Meruya” sebanyak...


a. 100 kali c. 11000 kali
b. 1000 kali d. 1089 kali

51. Pernyataan yang benar berhubungan dengan method dalam java, yaitu...
a. Parameter (argument) method dapat berupa object dari suatu class
b. Semua method dalam java harus memiliki return type
c. Method dengan tipe double berarti method akan menghasilkan nilai bilangan bulat
d. Method dengan tipe void merupakan method yang tidak menampilkan dan mengeluarkan
apa pun

52. Penanganan error dengan throws diletakkan di...


a. Di dalam class c. Pendeklarasian class
b. Di dalam method d. Pendeklarasian method

53. Dalam konsep OO, setiap object memiliki behaviour. Apa yang dimaksud dengan behaviour?
a. Identifier c. Method
b. Variable d. Semua Benar

54. Method yang digunakan untuk menggabungkan beberapa data string menjadi satu menggunakan...
a. append() c. equals()
b. insert() d. concat()

55. Method yang digunakan untuk mengambil seluruh karakter lalu menyimpannya kedalam variabel
bertipe array-of-char yaitu…
a. charAt() c. toCharArray()
b. setCharArray() d. GetCharAt()

56. Method yang digunakan untuk mengambil sub-string yang dimulai dari posisi tertentu sampai akhir
string adalah…
a. charAt(int1,Int2) c. substring(int1, int2)
b. substring(int) d. charAt(int)

57. Method yang digunakan untuk memeriksa apakah karakter yang tersimpan berjenis huruf besar atau
tidak pada class Character adalah…
a. isUppercase() c. toUppercase()
b. toUpperCase() d. isUpperCase()

Perhatikan potongan program berikut :


1. StringBuffer x1 = new StringBuffer(“Matahari Terbenam”);
2. x1 = x1.replace(1, 3, “Alam”);
3. System.out.println(x1);

58. Hasil penggalan program diatas adalah...


a. MAlamhari Terbenam c. Alamahari Terbenam
b. MAlamahari Terbenam d. Alamtahari Terbenam

59. Berikut ini adalah method-method yang dimiliki oleh class StringBuffer, kecuali...
a. append() c. indexOf()
b. setLength() d. concat()

60. Berikut ini adalah method-method yang dimiliki oleh class String, kecuali...
a. substring() c. equals()
b. setCharAt() d. concat()

Untuk soal no. 61, 62, 63 dan 64, Perhatikan potongan program berikut :
1. int score = 0;
2. Char answer = ‘a’;
3. score = (answer == 'a') ? 10 : 0;
4. System.out.println("Score"+ answer+ “=”+ score );

61. Hasil penggalan program diatas adalah...


a. Score = 0 c. Score a = 10
b. Score = 10 d. Error

Untuk soal no. 62, Perhatikan potongan program berikut :


1. boolean val1 = true, val2 = true;
2. System.out.println(val1 ^ val2);
3. val1 = false; val2 = true;
4. System.out.println(val1 ^ val2);
5. val1 = false; val2 = false;
6. System.out.println(val1 ^ val2);
7. val1 = true; val2 = false;
8. System.out.println(val1 ^ val2);

62. Hasil penggalan program diatas adalah...


a. true b. true c. true d. false
false false true true
true false false false
false false true true

63. Jika penggalan program diatas diubah menjadi operator logika (||), maka hasilnya adalah...
a. true false false
false b. true true
true false c. true
false false true d. false
true false true
64. Jika penggalan program diatas diubah menjadi operator logika (&&), maka hasilnya adalah...
a. true b. true c. true d. false
false false true true
true false false false
false false true true

65. Berikut adalah struktur pernyataan operator kondisi yang benar yaitu..
a. exp1;exp2?exp3 b. exp1:exp2?exp3
c. exp1?exp2:exp3 d. exp1?exp2;exp3
66. Berikut merupakan pernyataan yang benar mengenai tipe data reference, yaitu…
a. Menyimpan data dalam lokasi memori yang sebenarnya
b. Berisi nilai tunggal dengan format dan ukuran yang sesuai tipenya
c. Menyimpan alamat dalam lokasi memori yang menunjuk ke lokasi memori dimana data
sebenarnya berada
d. Sebuah tipe data berjenis metode yang memiliki class.

Untuk soal no. 67, 68, 69 dan 70, Perhatikan program berikut :
1. public class OutputVariable {
2. public static void main(String [] args){
3. int value;
4. value = 10;
5. char C;
6. C = ‘C’;
7. System.out.print(value++);
8. System.out.println(“The value of C=”+ C);
9. }
10. }

67. Pendeklarasian class pada program diatas terjadi pada nomor…


a. 2 c. 3 dan 5
b. 1 d. 4 dan 6

68. Pendeklarasian variabel pada program diatas terjadi pada nomor…


a. 3 c. 1
b. 4 dan 6 d. 3 dan 5

69. Proses inisialisasi pada program diatas terjadi pada nomor…


a. 3 c. 1
b. 4 dan 6 d. 3 dan 5

70. Hasil dari program diatas adalah…


a. 10 The value of C=C c. 10The value of C=C
b. 11The value of C=C d. Error

71. Method yang digunakan untuk mengkonversi data integer ke bentuk biner dalam Java adalah :
a. toIntBinary() c. parseInt()
b. toBinaryString() d. getBinaryString()
72. Method yang digunakan untuk mengkonversi data pada objek Boolean menjadi String dalam Java
adalah :
a. toStringBoolean() c. toString()
b. toBooleanValue() d. parseBoolean()

73. Method yang berfungsi memanggil dirinya sendiri disebut dengan…


a. Constructor c. Rekursif
b. Overloading d. Factorial

74. Beberapa method dengan nama yang sama tetapi berbeda parameternya merupakan ciri dari…
a. Method Constructor c. Method Rekursif
b. Method Overloading d. Method Factorial

75. Modifier yang hanya dikenal oleh dirinya dan kelas turunannya adalah…
a. protected c. public
b. private d. final

76. Modifier yang digunakan bila suatu unsure (kelas/metode/variable) memiliki nilai yang tetap
adalah…
a. protected c. public
b. private d. final

77. Yang tidak termasuk syarat dalam pembuatan konstruktor adalah ...
a. Namanya harus sama dengan nama kelas
b. Dipanggil saat objek diciptakan
c. Dalam kelas hanya boleh ada satu konstruktor
d. Konstruktor dapat tidak memiliki parameter

78. Pemanggilan metode superkelas dari subkelas menggunakan sintaks...


a. superclass.nm_metode( ) c. super nm_metode( )
b. nm_metode( ) d. super.nm_metode( )

79. Cara pemanggilan konstruktor superclass yang benar adalah …


a. super( ) c. super.methode(parameter)
b. super.methode( ) d. object.methode( )

Untuk soal no. 80, 81, 82, 83 dan 84, Perhatikan program berikut ini :
1. class ini{
2. void anak( ) {
3. String a = ‘ini redo’;
4. System.out.println(a);
5. }
6. }
7. class itu extends ini {
8. public static void main(String args[ ]) {
9. int a=6; int b=2;
10. itu no=new itu( );
11. no.anak( );
12. System.out.println((a+b));
13. }
14. }

80. Jika program tersebut disimpan maka nama programnya adalah ...
a. ini.java c. anak.java
b. itu.java d. no.java

81. Hasil yang tercetak di layar pada program di atas adalah :


a. ini redo c. ini redo
8 62
b. ini redo 8 d. 8
ini redo
82. Yang merupakan superclass adalah
a. ini c. anak
b. itu d. no

83. Yang merupakan subclass adalah


a. ini c. anak
b. itu d. no

84. Yang merupakan objek adalah


a. d. anak
b. ini e. no
c. itu

85. Untuk mengunci metode info agar tidak dapat di override jika dipanggil pada kelas lain adalah
dengan syntax…..
a. protected void info( ) c. public void info( )
b. final void info( ) d. private void info( )

86. Dibawah ini adalah sifat dan definisi dari package kecuali ……….
a. Suatu unit yang berisikan sejumlah kelas yang dikelompokkan menjadi Satu
b. mampu mengenali member dari kelas yang tidak memiliki penentu akses bawaan
c. Package dideklarasikan sekali dalam sebuah berkas
d. Package yang tidak dapat digunakan oleh kelas yang lainnya

87. Berikut adalah cara pendeklarasian array 1 dimensi, kecuali…


a. int coba [] c. String [] abc = {“aku”,”mami”,”mika”,”lia”
b. String [] x = new String (5) }
d. int [] lon = {3,3,3,3,3}

Untuk soal no. 88 dan 89, Perhatikan program berikut ini :


1. class Array1{
2. public static void main(String [] me)
3. int x[] = {9,9,6,0,7,0,7,0};
4. int y[] = new int [8];
5. for (int a=0; a<x.length;a++)
6. System.arraycopy(x,0,y,0,7);
7. for (int a=0; a<y.length;a++)
8. System.out.println(“Bil[“+y+”]=”+y[a]);
9. }
10. }

88. Hasil keluaran program diatas adalah…


a. 99607070 c. 9960707
b. 96070700 d. 9607070

89. Jika pada baris ke 6 perintahnya diganti dengan System.arraycopy(x,1,y,1,7), maka hasilnya menjadi…
a. 99607070 c. 9960707
b. 9607070 d. 09607070

90. Berikut adalah syntax untuk mendeklarasikan array 2 dimensi yaitu…


a. Tipedata[ ] [ ] nama.var[= new tipedata[jumlahkolom][jumlahbaris]];
b. Tipedata[ ] [ ] nama.var[= tipedata[jumlahbaris][jumlahkolom]];
c. Tipedata nama.var [ ] [ ] [= tipedata[jumlahkolom][jumlahbaris]];
d. Tipedata[ ] [ ] nama.var[= new tipedata[jumlahbaris][jumlahkolom]];

Untuk soal no. 91 dan 92, Perhatikan program berikut ini :


1. class Array2{
2. public static void main(String [] me)
3. int array[];
4. array = new int[8];
5. String output = “”;
6. for (int counter = 0;counter < array.length;counter+=2)
7. output += array[counter];
8. System.out.print(output);
9. }
10. }

91. Dari penggalan program diatas, pendeklarasian variabel array berada pada baris…
a. 1 c. 3
b. 2 d. 4

92. Hasil keluaran program diatas adalah…


a. 1 2 3 4 5 6 7 8 c. 0 0 0 0 0 0 0 0
b. 1 0 3 0 5 0 7 0 d. 0 0 0 0 0

93. Untuk mengurutkan isi array secara ascending, bisa menggunakan…


a. System.sort() c. Array.Sort()
b. Arrays.sort() d. System.sorting()

94. Method yang memiliki nama yang sama dengan nama kelasnya disebut dengan…
a. Overriding c. Polymorphism
b. Constructor d. Overloading

95. Keyword yang digunakan untuk mengaplikasikan konsep pewarisan adalah…


a. This c. Extends
b. Super d. Static

96. Kemampuan suatu subkelas untuk memodifikasi data dan method dari kelas induknya disebut
dengan …
a. Overriding c. Polymorphism
b. Inheritance d. Encapsulation

97. Modifier final pada kelas berarti…


a. Kelas tersebut adalah konstanta
b. Kelas tersebut tidak dapat dioverride oleh kelas lain
c. Kelas tersebut tidak dapat diturunkan menjadi subkelas
d. Kelas tersebut tidak dapat diakses oleh kelas lain

Untuk soal no. 98, 99 dan 100, Perhatikan program berikut ini :
1. class Empat{
2. Empat(){
3. System.out.print(“22”); }
4. void cetak() {
5. System.out.print(“33”); }
6. public static void main(String [] me) {
7. Empat a = new Empat();
8. System.out.print(“11”);
9. a.cetak();
10. }
11. }
98. Hasil program diatas adalah….
a. 11 22 33 c. 11 33 22
b. 22 33 11 d. 22 11 33

99. Pembentukan objek pada program diatas terjadi pada baris ke…
a. 1 c. 7
b. 2 d. 9

100. Method konstruktor terdapat pada baris ke…


a. 1 c. 4
b. 2 d. 9

101. Berikut adalah cara untuk mendeklarasikan sebuah package, yaitu...


a. package.<nama_package> c. package
b. package <nama_package> <nama_package>.<nama_kelas>
d. package <nama_package>.*

Untuk soal no. 102, 103 dan 104, Perhatikan program berikut ini:

102. Konsep pewarisan terdapat pada baris ke…


a. 1 c. 20
b. 10 d. 23

103. Jika program tersebut disimpan maka nama programnya adalah ...
a. Turunan.java c. Utama.java
b. Cetak.java d. CetakNilai.java

104. Object yang tercipta pada program tersebut adalah….


a. Turunan dan Utama c. Cetak dan CetakNilai
b. Obj1 dan obj2 d. x, y dan z

105. Berikut adalah beberapa hal yang perlu ditimbangkan pada saat mewariskan method, kecuali…
a. Method yang dideklarasikan public pada superclass harus bersifat public untuk semua
subclass
b. Method yang dideklarasikan protected pada superclass dapat menjadi protected/public untuk
subclass, namun tidak bisa menjadi private
c. Method yang dideklarasikan tanpa akses(default), tidak dapat dideklarasikan sebagai private
untuk subkelas
d. Method yang dideklarasikan private tidak dapat diwariskan

106. Method yang bersifat static berarti…


a. Diambil dengan membuat sebuah object dari class tersebut
b. Dapat mengakses anggota static dan non static dari class
c. Dapat menunjuk pada this dan super
d. Dapat diambil tanpa membuat sebuah object dari class tersebut

107. Pada pemrograman java, file dengan ekstensi class (nama_file.class) sebenarnya berisikan:
a. Statement program c. Instruksi program
b. Logika program d. Bytecode program

108. Berikut adalah beberapa platform java yang berkembang pada saat ini kecuali
a. J2SE c. J2XE
b. J2ME d. J2EE

109. Pada pemrograman berorientasi objek terdapat beberapa istilah yang kita ketahui kecuali:
a. Polymer c. Inheritance
b. Method d. Encapsulation

110. Jika sebuah class memiliki private method, maka yang dapat menggunakan method tersebut
adalah:
a. sub class c. outer class
b. class tersebut d. super class

111. Untuk mengelompokkan class, kita dapat mengetikkan perintah pada program java sebagai
berikut:
a. packaged nama_package c. package nama_package
b. packages nama_package d. packaging nama_package

Untuk soal no. 112, Perhatikan penggalan program berikut:


class uji
{ void data()
{ statement…}
}
class uji2
{ void info()
{ statement…}
}

112. Dari program diatas jika kita menginginkan agar class uji2 dapat memiliki method void data(),
maka kita harus menambahkan perintah:
a. extend c. extended
b. extends d. ekstend

113. Berikut ini yang bukan merupakan ciri bahasa pemrograman java adalah:
a. compiler c. interpreter
b. translator d. architecture neutral

114. Berikut ini merupakan contoh tipe data yang menangani bilangan bulat, kecuali:
a. int c. float
b. long d. short

Untuk soal no. 115 dan 116, Perhatikan penggalan program berikut:

class uji
{ void data()
{ statement…}
}
class uji2 extends uji
{ void info()
{ statement…}
}

115. Pada program diatas, class uji2 bertindak selaku:


a. super class c. sub class
b. called class d. interface class

116. Pada program diatas jika method void data() ditambahkan perintah protected, maka yang dapat
mengakses method tersebut adalah:
a. sub class c. super class
b. outer class d. tidak ada
117. Berikut ini manakah jenis operator yang biasa digunakan dalam bahasa pemrograman java,
kecuali:
a. Operator logika c. Operator bitwise
b. Operator relasi d. Operator increment

118. Operator yang terdapat pada kurung berikut ( %= ) adalah operator yang digunakan untuk
a. Penjumlahan c. pembagian
b. sisa pembagian d. perkalian

Untuk soal no. 119, Perhatikan penggalan program berikut:

class uji
{ int x;
void data()
{ statement…}
public static void main(String []args)
{ statement…}
}

119. Jika pada program diatas method void data() ditambahkan perintah static maka untuk
pemanggilannya pada method main dapat dilakukan sebagai berikut kecuali:
a. uji x = new uji(); x.data(); c. uji.data();
b. data(); d. void data();

Untuk soal no. 120, Perhatikan penggalan program berikut:

for (i = 0; i < 15; i+=3)


{
System.out.println(i);
if (i == 12)
break;
}

120. Jika program tersebut dijalankan maka akan menghasilkan tampilan sebagai berikut:
a. 0, 3, 6, 9, 12, 15 c. 0, 3, 6, 9
b. 0, 3, 6, 9, 12 d. semua salah

121. Berikut ini mana method yang biasa digunakan pada class String:
a. Length() c. delete()
b. insert() d. setCharAt()
Untuk soal no. 122 dan 123, Perhatikan penggalan program berikut:

StringBuffer x = new StringBuffer(“Met Ujian Ya”);


x.setLength(7);
System.out.println(x.replace(4, 5, “Mabok”));

122. Jika program tersebut dijalankan maka akan menghasilkan tampilan sebagai berikut:
a. Met Mabok Ya c. Met Mab
b. Met Mabok d. Met Mabokji

123. Jika program diatas ditambahkan perintah ”System.out.println(x.reverse());” , maka akan


menghasilkan tampilan:
a. ijkobaM teM c. ijU teM
b. aY kobaM teM d. aY naijU teM

124. Yang menyebabkan java menjadi bahasa pemrograman yang multiplatform adalah karena java
memiliki:
a. JVC c. KVM
b. JVM d. KTM

Untuk soal no. 125, Perhatikan penggalan program berikut:

int A = 40, B = 12;


System.out.println("A & B = " + ( A & B ));

125. Jika program tersebut dijalankan maka akan menghasilkan tampilan sebagai berikut:
a. 10 c. 12
b. 8 d. 40

Untuk soal no 126, Perhatikan penggalan program berikut:

int A = 40, B = 12;


System.out.println("A | B = " + ( A | B ));

126. Jika program tersebut dijalankan maka akan menghasilkan tampilan sebagai berikut:
a. 44 c. 12
b. 42 d. 40
127. Berikut ini pernyataan mana yang benar menurut saudara:
a. if(srt1 == “budi”) {System.out.println(“budi”);}
b. if(srt1 == ‘budi’) {System.out.println(“budi”);}
c. if(srt1.equals(“budi”)) {System.out.println(“budi”);}
d. if(srt1.equals(‘budi’)) {System.out.println(“budi”);}

128. Untuk menghasilkan gabungan string buffer sebagai berikut “Oncom Dijero120096.5 FM”dapat
digunakan fungsi:
a. Concat() c. toString()
b. Trim() d. Append()

129. Manakah dari beberapa jawaban berikut yang tidak melakukan return value:
a. int Jumlah() c. float Bagi()
b. double Kali() d. void Kurang()

130. Berikut ini mana yang bukan merupakan cara pendeklarasian array pada java:
a. int nomor[][]; c. String nama[];
b. float pecah[10]; d. double nilai = new double[5];

131. Untuk mengurutkan isi array kita dapat memanfaatkan method sort yang terdapat pada package:
a. java.io c. java.util
b. java.lang d. javax.swing

132. Variabel-variabel yang menyatakan karakteristik suatu objek disebut..


a. Data member c. Tipe data
b. Member function d. Class

133. Mengelompokkan kelas-kelas yang saling berelasi menggunakan perintah di java yaitu….
a. Private c. Import
b. Package d. Public

134. Kesatuan antara data dan fungsi, disebut..


a. class c. variabel
b. fungsi d. objek

135. Bahasa Pemrograman java memiliki 2 kategori tipe data, yaitu :


a. Primitive, Reference c. Double, int
b. Variabel, Contructor d. Salah semua
136. Dibawah ini termasuk tipe data primitive, kecuali…
a. Byte c. Boolean
b. Float d. Class

137. Yang tidak termasuk operator matematika dalam ekspresi java adalah...
a. + c. %
b. – d. Mod

138. Dari pilihan dibawah ini, cari yang urutan superioritas operatornya paling benar…
a. a % (b * (c + (d - e))) c. a %(b * (c + (d - e)))
1 2 3 4 3 1 4 2
b. a % (b * (c + (d - e))) d. a / (b * (c + (d - e)))
4 3 2 1 2 1 4 3

139. Hasil dari ekspresi 1.0+1/4 adalah..


a. 1.25 c. 1.0
b. 1 d. 1.4

140. Konversi data dari tipe data besar ke tipe data yang lebih kecil adalah..
a. Widening
b. Narrowing
c. toString
d. valueOf
Perhatikan program di bawah ini untuk menjawab pertanyaan nomor 10,11,12
public class TestIncrement {
public static void main(String[] args) {
int a = 3, b = 0,c=0;
a = ++a;
b = --a + 2 * a * a ++;
System.out.println( “a = “ + a );
System.out.println( “b= “ + b);

c = ++a + 2 * a * a--;
System.out.println( “c= “ + c );
}
}

141. hasil keluaran dari variabel a adalah…


a. 4 c. 5
b. 3 d. 2

142. hasil keluaran dari variabel b adalah…


a. 20 c. 45
b. 21 d. 55

143. Hasil keluaran dari variabel c adalah…


a. 50 c. 21
b. 55 d. 23

144. Yang termasuk selection structure, adalah.,..


a. While c. Do while
b. For d. If

145. Yang tidak termasuk repetition structure, adalah…


a. While c. Do while
b. For d. Switch

146. Perintah untuk menghentikan perulangan, yaitu…


a. Stop c. Outer
b. Break d. Continue

147. Perhatikan program di bawah ini :


1. x = 1;
2. while ( x <= 5 );
3. x++;
dari program diatas, pada baris berapa statement yang salah..
a. 1
b. 2
c. 3
d. Benar semua
148. Method pada kelas String untuk menggabungkan beberapa data string menjadi satu, adalah..
a. Concat c. Replace
b. Append d. Substring

149. Perhatikan program di bawah ini :


String abc = “Jakarta”;
String ghi = abc.method(“a”, “o”);
Ganti tulisan method yang hurufnya ditebalkan menjadi method yang sesuai (pilih jwban
dibawah ini :
a. replace c. replaceFirst
b. replaceAll d. chartAt

150. Mengubah huruf string menjadi huruf besar menggunakan method…


a. toLowerCase c. toUperCase
b. toUpperCase d. LowerCase

151. Perhatikan program di bawah ini untuk menjawab pertanyaan no.21,22:


String abc = “Saya senang belajar bahasa pemrograman Java”;
String pqr = abc.substring(20);
String xyz = abc.substring(27,44);
Hasil keluaran dari pqr adalah…
a. Bahasa pemrograman Java c. _Bahasa Pemrograman Java
b. Pemrograman Java d. r Bahasa Pemrograman Java

152. Hasil keluaran dari xyz adalah…


a. java c. pemrograman java
b. emrograman java d. salah semua

153. Dibawah ini adalah method yang terdapat di class StringBuffer yang berguna untuk mengambil
beberapa string, kecuali…
a. substring(int) c. indexof(string)
b. substring(int,int) d. valueof(int)

154. Method untuk mengganti satu karakter pada posisi tertentu adalah..
a. setCharAt c. deleteCharAt
b. charAt d. char

155. Method untuk mengembalikan nilai integer saat ini kedalam bentuk pecahan, adalah…
a. intValue c. intDouble
b. doubleValue d. doubleInteger

156. Mengkonversi data integer ke bentuk biner menggunakan method…


a. toBinary c. toBiner
b. toBinaryString d. salah semua

157. Method untuk konversi data dari objek data Boolean menjadi data boolean klasik adalah
a. BooleanString c. booleanValue
b. toString d. salah semua
158. Method yang memanggil dirinya sendiri baik secara langsung maupun secara tidak langsung,
adalah...
a. Rekursif c. Overloading
b. Factorial d. Salah semua

159. Metode yang memiliki nama sama, namun memiliki parameter yang berbeda-beda, adalah..
a. Overloading c. Rekursif
b. Factorial d. Import

160. Perintah untuk compile di java adalah…


a. Javac nm_file c. Java nm_class
b. Javac nm_class d. Java nm_file

161. Perintah untuk execute di java adalah…


a. Javac nm_file c. Java nm_class
b. Javac nm_class d. Java nm_file

162. Dibawah ini adalah cara mendeklarasikan array 1 Dimensi sebanyak 10 elemen data, kecuali :
a. int aku = new int[5]; c. int aku = {1,4,5,6,7,8,9,10,11,12};
b. int aku [ ] = new aku[10]; d. benar semua

163. Syntak untuk menyalin isi variabel Array, yaitu …


a. Var.Tujuan[no.elemen]= Var.Sumber[no.elemen];
b. Var.Sumber[no.elemen]= Var.Tujuan[no.elemen];
c. Var.Tujuan[no.elemen]== Var.Sumber[no.elemen];
d. Var.Sumber[no.elemen]= Var.Tujuan[no.elemen];

164. Perintah untuk mendeklarasikan variabel array 2 dimensi untuk 3 baris 2 kolom adalah…
a. Int [][] angka = new int [2][3]; c. Int angka[][] = new int [2][3];
b. Int [][] angka = {1,2,3,4,5,6}; d. Int [][] angka = new int [3][2];

165. Perhatikan program di bawah ini :

2
3
Agar keluaran dari program di atas untuk a[i] adalah 50,60,70,80,90,100. Maka syntak yg perlu
diganti adalah …
a. 1 c. 3
b. 2 d. Salah semua

166. Metode khusus yang memiliki nama sama dengan nama kelas disebut...
a. Variabel c. Method
b. Konstruktor d. Kelas dalam Java

167. Package yang digunakan untuk kelas komponen GUI, adalah ...
a. Java.io c. Javax.swing
b. Java.lang d. Java.applet

168. sebuah kelas dapat berisi lebih dari 1 constructor yang mempunyai argument berbeda-beda,
disebut ..
a. overloading c. package
b. modifier d. final

169. Instruksi untuk mengkompile class java menjadi package, adalah…


a. javac –d <directory_target> <nama_file_java>
b. javac <directory_target> <nama_file_java>
c. javac –d <nama_file_java> <directory_target>
d. javac –d <directory_target>

170. Atribut kelas hanya dapat diakses oleh metode dalam kelas disebut ...
a. Private c. Public
b. Protected d. default
“ INHERITANCE”

A. Tujuan

 Memahami Konsep inheritance (pewarisan).


 Mendefinisikan superclasses dan subclasses
 Override method dari superclasses
 Menerapkan keyword this

B. Dasar Teori

1. Pewarisan

Inheritance merupakan pewarisan atribut dan method pada sebuah class yang
diperoleh dari class yang telah terdefinisi tersebut. Setiap subclass akan mewarisi state
(variabel-variabel) dan behaviour (method-method) dari superclass-nya. Subclass
kemudian dapat menambahkan state dan behaviour baru yang spesifik dan dapat pula
memodifikasi (override) state dan behaviour yang diturunkan oleh superclass-nya.

Gambar 1. Kelas Hierarki Java

 Keuntungan dari inheritance adalah :


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.

2. Key Word Super


Keyword ini digunakan untuk memanggil konstruktor dari superclass atau menjadi
variabel yang mengacu pada superclass. Ada beberapa hal yang harus diingat ketika
menggunakan pemanggil constuktor super:
1. Pemanggil super() HARUS DIJADIKAN PERNYATAAN PERTAMA DALAM
constructor.
2. Pemanggil super() hanya dapat digunakan dalam definisi constructor.
3. Termasuk constructor this() dan pemanggil super() TIDAK BOLEH
TERJADI DALAM constructor YANG SAMA.
Pemakaian lain dari super adalah untuk menunjuk anggota dari superclass (seperti
reference this).

3. Key Word This


Fungsi dari kata kunci THIS adalah : untuk mengakses variable instan dari masing-
masing objek.

4. Overriding
Method overriding adalah mendefinisikan kembali method yang sama, baik nama
method maupun signature atau parameter yang diperlukan dalam subclass.

C. Latihan
Latihan 1

a. Tulis ketiga program di bawah ini :

class Satu{

private int a = 5;

protected void terprotek () {

System.out.println ("Method ini hanya untuk Anaknya ");

public void info () {

System.out.println ("a= "+a);

System.out.println ("Dipanggil pada " + this.getClass ().getName());


class Dua extends Satu {

private int b = 7;

public void BacaSuper () {

System.out.primtln ("Nilai b : "+b);

terprotek();

info();

class TestSatuDua{

public.static.void.main (string [] abc) {

Dua D2 = new Dua ();

D2.BacaSuper ();

D2.info ();

Satu S1 = new Satu ();

S1.terprotek ();

S1.info ();

}
b. Kompilasi ketiga program secara berurutan :

c. Hilangkan baris S1.terprotek () dari class TestSatuDua

class TestSatuDua{

public.static.void.main (string [] abc) {

Dua D2 = new Dua ();

D2.BacaSuper ();

D2.info ();

Satu S1 = new Satu ();

S1.info ();

d. Kompilasi ketiga class tersebut,hasil kompilasi adalah :

e. Hapus semua file yang ber ekstensi.class dari folder.


f. Kompilasi class TestSatuDua saja. Output yang dihasilkan adalah :
g. Jelaskan fungsi dari perintah this.getClass().getName();

Latihan 2

a. Tulis ketiga file berikut menjadi 3 file yang berbeda :

class Person {

private String nama;

private int usia;

// Konstruktor

public Person (String nama, int usia) {

this.nama = nama;

this.usia = usia;

// Method

public void info () {

System.out.println ("Nama : "+this.nama);

System.out.println ("Usia : "+this.usia);

// Akhir kelas person

class Employ extends Person {

private String noPegawai;

//Konstruktor

public Employ (String noPegawai, String nama,int usia) {


super(nama, usia);

this.noPegawai = noPegawai;

// Methode

public void info() {

System.out.println ("No. Pegawai : "+this.noPegawai);

super.info();

}// akhir class employ

public class KonstruktorSuperkelas {

public static void main (String [] args) {

Employ programmer1 = new Employ ("123456", "Yeye",18);

programmer1.info();

b. Keluaran dari program di atas adalah :


Latian 3

a. Tulis program berikut


public class Animal {
public static void testClassMethod() {
System.out.println ("The class method in Animal. ");
}
public void testInstanceMethod() {
System.out.println ("The instance method in Animal. ");
}
}
public class Cat extends Animal {
public static void testClassMethod() {
System.out.println ("The class method in Cat.");
}
//meng-override method pada class Animal
public void testInstanceMethod() {
System.out.println ("The instance method in Cat. ");
}

public static void main (String[] args) {


Cat myCat = new Cat();
Animal myAnimal = myCat;
Animal.testClassMethod();
myAnimal.testInstanceMethod();
}
}
b. Output program tersebut adalah :
Latian 4
a. Tulis dan simpan code program berikut (perhatikan keyword super pada program)
class A {
private int a;

public void setA (int nilai){


a = nilai;
}
public int getA(){
return a;
}
public void tampilkanNilai(){
System.out.println("Nilai a: " + getA());
}
}

class B extends A{
private int b;

public void setB (int nilai){


b = nilai;
}
public int getB(){
return b;
}
//melakukan override terhadap method tampilkanNilai()
//yang terdapat pada kelas A
public void tampilkanNilai(){
super.tampilkanNilai();//memanggil method dalam kelas A
System.out.println("Nilai b : " + getB());
}
}

class DemoOverride2{
public static void main (String [] args){

B obj = new B();

obj.setA(100);
obj.setB(200);

//akan memanggil method yang terdapat pada kelas B


obj.tampilkanNilai();
}
}
b. Keluaran dari program tersebut adalah :

Latian 5

a. Tulis dan simpan code berikut


public class Bicycle {
//the Bicycle class has three fields
public int cadence;
public int gear;
public int speed;
//the Bicycle class has one constructor
public Bicycle(int startcadence, int startspeed, int startgear) {
gear = startgear;
cadence = startcadence;
speed = startspeed;
}
//the Bicycle class has four methods
public void setcadence(int newValue) {
cadence = newValue;}
public void setgear(int newValue) {
gear = newValue;}
public void applyBrake(int decrement) {
speed -= decrement; }
public void speedUp(int increment) {
speed += increment;
}}

public class MountainBike extends Bicycle {


//the MountainBike subclass adds one field
public int seatHeight;
//the MountainBike subclass has one constructor
public MountainBike(int startHeight, int startcadence, int startspeed, int startgear) {
super(startcadence, startspeed, startgear);
seatHeight = startHeight; }
//the MountainBike subclass adds one method
public void setHeight(int newValue) {
seatHeight = newValue; }
public static void main(String[] abc) {
System.out.println("Mulai Berjalan");
MountainBike MB = new MountainBike(0,0,0,0);
System.out.println("gear = "+MB.gear);
System.out.println("speed ="+MB.speed);
MB.setgear(1);
MB.speedUp(1);
System.out.println("gear = "+MB.gear);
System.out.println("speed = "+MB.speed);
MB.speedUp(1);
System.out.println("gear = "+MB.gear);
System.out.println("speed = "+MB.speed);
}
}

b. Keluaran dari program tersebut adalah :


PRAKTIKUM 6
EXCEPTION
A. TUJUAN
• Memahami konsep, tipe, dan cara penanganan eksepsi.
• Memahami cara melontar dan menangkap eksepsi.
• Memahami konsep try catch dan catch secara bertingkat.
• Memahami klausa throws.

B. DASAR TEORI

Pemahaman Dasar
Eksepsi (exeption) adalah suatu mekanisme yang digunakan oleh beberapa bahasa
pemrograman untuk mendeskripsikan apa yang harus dilakukan jika ada suatu kondisi
yang tidak diinginkan terjadi. Eksepsi dapat dijumpai saat:
• Mengakses method dengan argumen yang tidak sesuai.
• Membuka file yang tidak ada.
• Koneksi jaringan yang terganggu.
• Manipulasi operand yang nilainya keluar dari batasan yang didefinisikan.
• Pemanggilan class yang tidak ada.

Java menyediakan dua kategori besar untuk eksepsi yang disebut sebagai checked
exception dan unchecked exception.
• Checked Exception adalah eksepsi yang diantisipasi oleh programmer untuk
ditangani dalam program dan terjadi karena kondisi luar yang siap muncul saat
program berjalan. Misalnya membuka file yang tidak ada atau gangguan jaringan.
• Unchecked Exception bisa muncul dari kondisi yang merepresentasikan adanya
bug atau situasi yang secara umum dianggap terlalu sulit bagi program untuk
menanganinya. Disebut sebagai unchecked karena kita tidak perlu mengeceknya
atau melakukan sesuatu jika kondisi ini terjadi. Eksepsi yang muncul dari
kategori situasi yang merepresentasikan bug ini disebut sebagai runtime
exception. Misalnya mengakses array melebihi size yang dimilikinya.
Praktikum Dasar Programming 2 34
Sedangkan eksepsi yang muncul sebagai akibat dari isu environment software – yang ini
jarang sekali atau sulit sekali untuk ditangani- disebut sebagai error, misalnya running
out memory.

Exception Class adalah sebuah class dasar yang merepresentasikan checked exception.
Dalam hal ini, bukannya membiarkan terjadinya penghentian program, sebaliknya harus
menuliskan beberapa kode untuk menangani eksepsi dan berikutnya melanjutkan
program.

Error Class adalah class dasar yang digunakan untuk kondisi error serius yang tidak
terdeteksi. Dalam banyak kasus, harus dibiarkan program diterminasi.

RuntimeException Class adalah class dasar yang digunakan untuk unchecked exception
yang bisa muncul sebagai akibat dari bug program. Pada banyak kasus, harus dibiarkan
program dihentikan.

Jadi, exception class mendefinisikan kondisi error ringan yang dijumpai oleh
program. Sedangkan untuk kondisi error berat didefinisikan dengan error.

Ketika dalam program terjadi eksepsi, method yang menemukan error tersebut bisa
menangani sendiri atau melemparkannya ("throw") kembali kepada pemanggilnya untuk
memberi sinyal bahwa telah terjadi suatu masalah. Sebagai contoh, coba jalankan
program ini. Apa hasilnya?

public class Eksepsi {


public static void main (String[] args) {
int i = 0;
String myarray[] = {"Array pertama", "Array kedua", "Array ketiga" };

while (i < 4) {
System.out.println (myarray[i]);
i++; Menghandle Eksepsi (Exception Handling)
}
} Jika tidak diberikan kode untuk menghandle situasi, maka
}
Program akan diterminasi dengan sebuah pesan kesalahan sebagai contoh hasil runtime
program di atas sebagai berikut:

Praktikum Dasar Programming 2 35


Upaya menangani eksepsi memungkinkan program untuk menangkap eksepsi,
menanganinya kemudian melanjutkan eksekusi program. Dalam hal ini digunakan
pernyataan try dan catch,. dengan perincian sebagai berikut :
• Blok try adalah kode yang memungkinkan terjadinya pelemparan (throw)
eksepsi tertentu.
• Blok catch adalah kode yang akan dieksekusi jika sebuah tipe eksepsi
dilemparkan.

try {
//code that might throw a particular exception
} catch(MyExceptionType myExcept) {
//code to execute if MyExceptionType exception is thrown
} catch(Exception otherExcept) {
//code to execute if a general Exception exception is thrown
}

Dimungkinkan ada beberapa blok catch setelah sebuah blok try, yang masing-masing
akan menangani tipe eksepsi yang berbeda.

Pernyataan finally
Pernyatan finally digunakan untuk mendefinisikan sebuah blok kode yang akan
senantiasa dieksekusi jika eksepsi berhasil ditangkap dalam blok catch. Perhatikan
contoh berikut,

Praktikum Dasar Programming 2 36


Pengesetan indeks kembali menjadi 0 mengakibatkan program dieksekusi dalam infinite
loop. Sehingga didapatkan tampilan luaran sebagai berikut:

Kategori Eksepsi
Gambar 6.1 adalah hirarki class yang merepresentasikan penggolongan eksepsi.

Gambar 6.1. Hirarki class eksepsi

Praktikum Dasar Programming 2 37


Dalam hal ini class java.lang.Throwable merupakan class parent dari seluruh
objek yang bisa dilempar dan ditangkap menggunakan mekanisme exception handling.
Sehingga dalam contoh di atas pernyataan :

catch (ArrayIndexOutOfBoundsException e)

merupakan jenis RuntimeException. Jika tidak hafal jenis eksepsinya secara pasti, bisa
mengambil parent classnya.

Eksepsi Umum
Java menyediakan beberapa eksepsi yang telah didefinisikan. Beberapa eksepsi
yang umum diantaranya adalah :
• ArithmeticException hasil dari operasi divide-by-zero terhadap integer.
Contoh : int i = 12 / 0;
• NullPointerException mengakses membernya (atribut atau method) ketika
reference-nya masih menunjuk ke null, misalnya ketika belum dibuat obyek
instannya.
Contoh : Date d = null; //tanpa membuat instance object
System.out.println(d.toString());
• NegativeArraySizeException membuat array dengan size yang diset negatif.
• ArrayIndexOutOfBoundsException mengakses array melebihi indeks
terbesarnya.
• SecurityException biasanya terjadi pada sebuah browser, ketika class
SecurityManager melempar eksepsi kepada applet yang melakukan operasi
yang membahayakan host atau file-filenya (tidak berhak mengaksesnya), misalnya
mengakses file sistem lokal, membuka soket ke sebuah host yang berbeda dengan
host yang melayani applet, dan lain-lain.

Overriding Method & Eksepsi


Ketika meng-override method yang melempar eksepsi, maka method yang meng-
override hanya bisa mendeklarasikan eksepsi yang sama classnya atau subclass dari
eksepsi yang dilemparkan oleh metode yang di-override. Perhatikan contoh berikut ini :

Praktikum Dasar Programming 2 38


public class TestA {
public void methodA() throws RuntimeException {

}
}

public class TestB1 extends TestA {


public void methodA() throws ArithmeticException Bisa karena
{ ArithmeticException
… adalah subclass dari
} RuntimeException
}

public class TestB2 extends TestA {


public void methodA() throws Exception { Gagal karena Exception
… adalah class induk dari
} RuntimeException
}

C. TUGAS PENDAHULUAN
1. Apa perbedaan antara error dan eksepsi!
2. Apakah try dapat mengandung except dan finally sekaligus? Beri contoh
programnya!

D. PERCOBAAN
1. Tulislah program berikut. Coba compile dan eksekusi.

Modifikasi program di atas menjadi program berikut, eksekusi dan analisa!

Praktikum Dasar Programming 2 39


2. Tulislah program berikut. Coba compile dan eksekusi. Apa yang terjadi?

public class CobaException {


public static void main(String[] args) {
int bil = 10;
System.out.println(bil/0);
}
}

Modifikasi program di atas menjadi seperti berikut. Analisalah!

public class CobaException {


public static void main(String[] args) {
int bil = 10;
try {
System.out.println(bil/0);
} catch(Exception e){
System.out.println(“Ada error yang terjadi”);
}
}
}

3. Tulislah program berikut. Coba compile dan eksekusi. Apa yang terjadi?

4. Tulislah program berikut. Coba compile dan eksekusi.

public class cobaException4{


public static void main(String [] args) {
int bil = 10;
String b[]= {“a”, “b”, “c”};
try {
System.out.println(bil/0);
System.out.println(b[3]);
Praktikum Dasar Programming 2 40
} catch(Arithmetic Exception ai) {
System.out.println(“Error aritmetik”);
} catch(ArrayIndexOutOfBoundsException n) {
System.out.println(“Error karena melebihi
kapasitas array”);
} catch(Exception e) {
System.out.println(“Ada error yang terjadi”);
}
}
}

Modifikasi program diatas menjadi program berikut, dan bandingkan hasil


keluarannya!
public class cobaException4{
public static void main(String [] args) {
int bil = 10;
String b[]= {“a”, “b”, “c”};
try {
System.out.println(b[3]);
System.out.println(bil/0);
} catch(Arithmetic Exception ai) {
System.out.println(“Error aritmetik”);
} catch(ArrayIndexOutOfBoundsException n) {
System.out.println(“Error karena melebihi
kapasitas array”);
} catch(Exception e) {
System.out.println(“Ada error yang terjadi”);
}
}
}

5. Tulislah program berikut. Coba compile dan eksekusi. Apa yang terjadi?

Praktikum Dasar Programming 2 41


6. Tulislah program berikut. Coba compile dan eksekusi. Analisalah!

Soal Laporan Resmi


1. Apa perbedaan antara keyword throw dengan throws!
2. Jelaskan fungsi pembuatan subclass eksepsi sendiri!

Praktikum Dasar Programming 2 42


Jika nama parameter dan nama data didalam kelas memiliki nama yang sama, dapat digunakan kata
kunci :

Select one:

a. Return

b. Class

c. Void

d. This

Feedback

The correct answer is: This

Method yang tidak mengembalikan nilai pada java adalah :

Select one:

a. Fungsi

b. Class

c. Prosedur

d. Object

Feedback

The correct answer is: Prosedur

Kata kunci yang digunakan dalam method prosedur adalah :

Select one:

a. Class

b. This

c. Void

d. Return

Feedback

The correct answer is: Void

Nama harus diawali dengan huruf kecil merupakan aturan untuk penamaan :
Select one:

a. Atribut

b. Modifier

c. Class

d. Object

Feedback

The correct answer is: Object

Didalam java terdapat dua buah method, yaitu fungsi dan prosedur. Fungsi adalah :

Select one:

a. Method yang tidak menggunakan return

b. Method yang tidak mengembalikan nilai

c. Method yang memiliki nilai balik

d. Method yang menggunakan kata kunci void

The correct answer is: Method yang memiliki nilai balik

Representasi nyata dari sebuah kelas disebut :

Select one:

a. Atribut

b. Instance

c. Modifier

d. Method

Feedback

The correct answer is: Instance

Nama harus diawali dengan huruf besar merupakan aturan untuk penamaan :

Select one:

a. Modifier

b. Atribut
c. Class

d. Object

Feedback

The correct answer is: Class

Dibawah ini merupakan data yang dimiliki oleh objek manusia, kecuali :

Select one:

a. Cara bicara

b. Tinggi badan

c. Nama

d. Jenis kelamin

Feedback

The correct answer is: Cara bicara

Tingkah laku yang dimiliki oleh objek disebut :

Select one:

a. Atribut

b. Method

c. Class

d. This

Feedback

The correct answer is: Method

Karakteristik yang dimiliki oleh objek disebut :

Select one:

a. Modifier

b. Object

c. Atribut

d. This
Feedback

The correct answer is: Atribut

Yang termasuk kedalam method untuk kelas hewan adalah, kecuali :

Select one:

a. Jenis kelamin hewan

b. Cara berkembangbiak

c. cara mencari makan

d. Cara bertahan hidup

Feedback

The correct answer is: Jenis kelamin hewan

Dibawah ini adalah keuntungan yang didapat dengan menggunakan pemrograman berorientasi objek,
kecuali :

Select one:

a. Reuseable

b. Program lebih terstruktur

c. Bersifat natural

d. Program tidak terstruktur

Feedback

The correct answer is: Program tidak terstruktur

Yang bukan merupakan modifier akses adalah :

Select one:

a. Public

b. Final

c. Default

d. Private

Feedback
The correct answer is: Final

Sifat yang dimiliki oleh setiap atribut disebut :

Select one:

a. Modifier

b. Class

c. Object

d. This

Feedback

The correct answer is: Modifier

Berikut adalah contoh objek, kecuali :

Select one:

a. Singa

b. Tumbuhan

c. Manusia

d. Hewan

Feedback

The correct answer is: Singa

Acces modifier untuk public modifier dapat diakses oleh :

Select one:

a. Tidak bisa diterapkan

b. Kadang bisa kadang tidak

c. Class dan interface dimanapun

d. Class dan interface yang sepaket

Feedback

The correct answer is: Class dan interface dimanapun


Yang bukan merupakan sifat-sifat constructor adalah :

Select one:

a. Memiliki return value

b. Tidak memiliki tipe data termasuk void

c. Tidak memiliki return value

d. Nama Constructor sama dengan nama class

Feedback

The correct answer is: Memiliki return value

Acces Modifier yang diwarisi oleh subkelas dipaket yang sama dan dapat diakses oleh method-method
yang sepaket adalah :

Select one:

a. Protected

b. Public

c. Private

d. Default

Feedback

The correct answer is: Default

Keyword yang digunakan untuk menentukan spesifikasi tingkat akses suatu variabel atau method
disebut :

Select one:

a. Access Modifier

b. Object

c. Overloading Method

d. Class

Feedback

The correct answer is: Access Modifier


Method khusus yang didefinisikan didalam kelas dan akan dipanggil secara otomatis setiap kali terjadi
instansiasi objek disebut :

Select one:

a. Object

b. Method

c. Constructor

d. Class

Feedback

The correct answer is: Constructor

Overloading method merupakan pendefinisian lebih satu method dalam satu :

Select one:

a. Class

b. Object

c. Method

d. Modifier

Feedback

The correct answer is: Class

Yang bukan merupakan ciri-ciri dari default constructor adalah :

Select one:

a. Tidak memiliki parameter formal

b. Memiliki parameter formal

c. Dibuat secara otomatis jika tidak mempunyai construktor

d. Dibuat secara otomatis saat class di kompilasi

Feedback

The correct answer is: Memiliki parameter formal


Yang bukan merupakan syarat-syarat overloading adalah :

Select one:

a. Overloading tidak bisa dilakukan dengan memberdakan nilai kembalinya

b. Overloading tidak bisa dilakukan pada sub kelas

c. Diperbolehkan lebih dari satu method

d. Overloading bisa dilakukan pada sub kelasnya

Feedback

The correct answer is: Overloading tidak bisa dilakukan pada sub kelas

Acces Modifier yang tidak dapat diakses di class dan method manapun adalah :

Select one:

a. Protected

b. Private

c. Public

d. Default

Feedback

The correct answer is: Private

Yang merupakan ciri-ciri default constructor adalah :

Select one:

a. Semua benar

b. Memiliki parameter formal

c. Tidak memiliki parameter formal

d. Dibuat secara manual

Feedback

The correct answer is: Tidak memiliki parameter formal


Acces Modifier yang diwarisi oleh subkelasnya dan dapat diakses dimanapun adalah :

Select one:

a. Default

b. Public

c. Protected

d. Private

Feedback

The correct answer is: Public

Acces modifier berupa default modifier dapat diakses oleh :

Select one:

a. Class dan interface dimanapun

b. Kadang bisa kadang tidak

c. Tidak bisa diterapkan

d. Class dan interface yang sepaket

Feedback

The correct answer is: Class dan interface yang sepaket

Acces Modifier yang diwarisi oleh subkelasnya dan dapat diakses oleh method-method yang sepaket
adalah :

Select one:

a. Private

b. Protected

c. Public

d. Default

Feedback

The correct answer is: Protected


Acces modifier untuk private modifier dapat diakses oleh :

Select one:

a. Class dan interface dimanapun

b. Tidak bisa diterapkan pada class dan interface

c. Class dan interface yang sepaket

d. Kadang bisa kadang tidak

Feedback

The correct answer is: Tidak bisa diterapkan pada class dan interface

Pendeklarasian constructor yang menggunakan parameter :

Select one:

a. [modifier] nama_class()

b. [modifier] nama_class(){//statement}

c. [modifier] nama_class(parameter)

d. [modifier] nama_class(){//parameter}

Feedback

The correct answer is: [modifier] nama_class(parameter)

Class A adalah turunan dari class B. Class B sering disebut sebagai :

Select one:

a. Derived Class

b. Child Class

c. Lower Class

d. Super Class

Feedback

The correct answer is: Super Class


Berikut ini pernyataan yang benar mengenai Inheritance dalam java, kecuali :

Select one:

a. Sebuah class dapat memiliki turunan lebih dari satu

b. Object dalam superclass menjadi milik subclass juga

c. Java mendukung multiple-inheritance

d. Untuk menyatakan inheritance digunakan keyword extends

Feedback

The correct answer is: Java mendukung multiple-inheritance

Suatu cara untuk mendefinisikan ulang method yang ada pada class induk apabila class anak
menginginkan adanya informasi yang lain :

Select one:

a. Overhead

b. OverrRead

c. Overriding

d. Overloading

Feedback

The correct answer is: Overriding

Dalam konsep OO, setiap object memiliki behaviour. Apa yang dimaksud behaviour ?

Select one:

a. Variabel

b. Semua Benar

c. Method

d. Identifier

Feedback

The correct answer is: Method


Keyword yang digunakan untuk menunjukkan, bahwa suatu class merupakan turunan dari class lain :

Select one:

a. Child

b. Extends

c. Parent

d. Inheritance

Feedback

The correct answer is: Extends

Penulisan beberapa fungsi (dua atau lebih) yang memiliki nama yang sama :

Select one:

a. Overloading

b. Overriding

c. Overhead

d. OverrRead

Feedback

The correct answer is: Overloading

Class yang digunakan untuk menunjukkan class anak atau turunan secara hirarkis dari super class :

Select one:

a. Child Class

b. Sub Class

c. Super

d. Super Class

Feedback

The correct answer is: Sub Class


Class yang hanya mengandung deklarasi method tanpa memiliki implementasi dan semua property yang
dimilikinya bersifat final adalah :

Select one:

a. Semua Salah

b. Interfaces

c. void final

d. final method

Feedback

The correct answer is: Interfaces

Berikut ini penamaan class di java yang diperbolehkan :

Select one:

a. Customer

b. Scanner

c. TowerOfHanoy

d. Semua Benar

Feedback

The correct answer is: Semua Benar

Keyword yang digunakan untuk memanggil konstruktor dari super class atau memanggil variable yang
mengacu pada super class :

Select one:

a. Import

b. Super

c. Extends

d. Implements

Feedback

The correct answer is: Super


Pada polimorfisme kondisi yang harus terpenuhi supaya fungsi dapat dijalankan yaitu kecuali :

Select one:

a. Method yang dipanggil harus melalui variabel dari super class.

b. Method yang dipanggil juga harus merupakan method yang ada pada super class

c. Method access attribute pada subclass boleh lebih terbatas daripada yang ada

d. Semua kelas diturunkan dari suatu kelas yang sama

Feedback

The correct answer is: Method access attribute pada subclass boleh lebih terbatas daripada yang ada

Class yang digunakan untuk menunjukkan class induk secara hirarkis dari sub class :

Select one:

a. Sub Class

b. Child Class

c. Super

d. Super Class

Feedback

The correct answer is: Super Class

Class A adalah turunan dari class B. Class A sering disebut sebagai :

Select one:

a. Child Class

b. Sub Class

c. Super Class

d. Derived Class

Feedback

The correct answer is: Sub Class


Syntax dasar untuk membuat interfaces pada java adalah :

Select one:

a. public static interfaces [namainterfaces] {//beberapa method tanpa isi}

b. public int interfaces [namainterfaces] {//beberapa method tanpa isi}

c. public void [namainterfaces] {//beberapa method tanpa isi}

d. public interfaces [namainterfaces] {//beberapa method tanpa isi}

Feedback

The correct answer is: public interfaces [namainterfaces] {//beberapa method tanpa isi}

Finally pada java adalah :

Select one:

a. suatu blok program yang akan dieksekusi jika dibutuhkan

b. suatu blok program yang akan dieksekusi jika try mengalami error

c. suatu blok program yang akan dieksekusi apapun kondisinya (default)

d. suatu blok program yang akan dieksekusi jika catch mengalami error

Feedback

The correct answer is: suatu blok program yang akan dieksekusi apapun kondisinya (default)

Untuk membuat sebuah eksepsi, harus mendeklarasikan variabel yang bertipe :

Select one:

a. exception

b. integer

c. string

d. char

Feedback

The correct answer is: exception


Penanganan eksepsi pada java diatur dengan lima kata kunci, kecuali :

Select one:

a. catch

b. try

c. switch

d. finally

Feedback

The correct answer is: switch

Setiap try sekurang-kurangnya membutuhkan :

Select one:

a. tiga bagian catch atau finally yang cocok

b. satu bagian catch atau finally yang cocok

c. dua bagian catch atau finally yang cocok

d. empat bagian catch atau finally yang cocok

Feedback

The correct answer is: satu bagian catch atau finally yang cocok

Jika kode program pada try mengalami error, maka :

Select one:

a. program akan dilewati untuk menjalankan catch

b. program akan memberikan solusi alternatif untuk penyelesaiannya

c. program akan berhenti sejenak (waiting) kemudian jalan (running) lagi

d. program akan otomatis berhenti dan muncul pesan error

Feedback

The correct answer is: program akan dilewati untuk menjalankan catch
Checked exception adalah :

Select one:

a. eksepsi yang diantisipasi oleh programmer untuk ditangani dalam program dan terjadi karena
kondisi luar yang tidak muncul saat program berjalan.

b. eksepsi yang tidak muncul dari kondisi yang mempresentasikan adanya bug atau situasi yang
secara umum dianggap terlalu sulit bagi program untuk menanganinya.

c. eksepsi yang bisa muncul dari kondisi yang mempresentasikan adanya bug atau situasi yang
secara umum dianggap terlalu sulit bagi program untuk menanganinya.

d. eksepsi yang diantisipasi oleh programmer untuk ditangani dalam program dan terjadi karena
kondisi luar yang siap muncul saat program berjalan.

Feedback

The correct answer is: eksepsi yang diantisipasi oleh programmer untuk ditangani dalam program dan
terjadi karena kondisi luar yang siap muncul saat program berjalan.

Class dasar yang mempresentasikan checked exception disebut :

Select one:

a. exception class

b. except class

c. runtime exception

d. error class

Feedback

The correct answer is: exception class

Exception memiliki 2 subclass yaitu :

Select one:

a. NullPointerException dan EOFException

b. RuntimeException dan ArithmeticException

c. RuntimeException dan IOException

d. IndexOutOfBoundsException dan IOException

Feedback
The correct answer is: RuntimeException dan IOException

Try pada java adalah :

Select one:

a. suatu blok program yang akan dieksekusi, jika error maka tidak dilanjuti

b. suatu blok program yang akan dieksekusi, jika status bernilai benar (true)

c. suatu blok program yang akan dieksekusi, jika status bernilai salah (false)

d. suatu blok program yang akan dieksekusi apapun kondisinya (default)

Feedback

The correct answer is: suatu blok program yang akan dieksekusi, jika error maka tidak dilanjuti

Jika suatu kode program mengalami error saat dijalankan dan tidak memiliki eksepsi, maka :

Select one:

a. program akan otomatis berhenti dan muncul pesan error

b. program akan melewati kode program tersebut

c. program akan memberikan solusi alternatif untuk penyelesaiannya

d. program akan berhenti sejenak (waiting) kemudian jalan (running) lagi

Feedback

The correct answer is: program akan otomatis berhenti dan muncul pesan error

Unchecked exception adalah :

Select one:

a. eksepsi yang diantisipasi oleh programmer untuk ditangani dalam program dan terjadi karena
kondisi luar yang siap muncul saat program berjalan.

b. eksepsi yang bisa muncul dari kondisi yang mempresentasikan adanya bug atau situasi yang
secara umum dianggap terlalu sulit bagi program untuk menanganinya.

c. eksepsi yang diantisipasi oleh programmer untuk ditangani dalam program dan terjadi karena
kondisi luar yang tidak muncul saat program berjalan.

d. eksepsi yang tidak muncul dari kondisi yang mempresentasikan adanya bug atau situasi yang
secara umum dianggap terlalu sulit bagi program untuk menanganinya.
Feedback

The correct answer is: eksepsi yang bisa muncul dari kondisi yang mempresentasikan adanya bug atau
situasi yang secara umum dianggap terlalu sulit bagi program untuk menanganinya.

25 / 0 akan menghasilkan :

Select one:

a. 0

b. 25

c. tak hingga

d. tak terdefinisi

Feedback

The correct answer is: tak terdefinisi

Eksepsi pada java adalah :

Select one:

a. keadaan tidak normal yang muncul pada suatu bagian program pada saat dijalankan

b. pesan error jika terjadi kesalahan

c. pointer kosong yang keluar dari indeks

d. kejadian error yang murni kesalahan dari java

Feedback

The correct answer is: keadaan tidak normal yang muncul pada suatu bagian program pada saat
dijalankan

Catch pada java adalah :

Select one:

a. suatu blok program yang akan dieksekusi apapun kondisinya (default)

b. suatu blok program yang akan dieksekusi jika try mengalami error

c. suatu blok program yang akan dieksekusi jika dibutuhkan

d. suatu blok program yang akan dieksekusi jika catch mengalami error

Feedback
The correct answer is: suatu blok program yang akan dieksekusi jika try mengalami error

Membuat eksepsi sendiri sesuai keperluan atau kasus yang dihadapi adalah pengertian :

Select one:

a. defined exception

b. undefined exception

c. user-defined exception

d. pre-defined exception

Feedback

The correct answer is: user-defined exception

Anda mungkin juga menyukai