java_part1
java_part1
1
Why is Java both Interpreted and Compiled Language? 1. Pergi ke link ini
Higher Level Language Ex. C++, Java http://www.oracle.com/technetwork/java/javase/downloads/index.ht
ml
Middle-Level Languages Ex. C 2. Pilih “Accept License Agreement”.
Low-Level Language Ex Assembly 3. Pilih file untuk sistem operasi yang anda pakai 64 bit ataupun 32 bit.
Lowest level as the Machine Language. 4. Untuk Windows jalankan file hasil download tersebut yang
mempunyai ekstensi .exe.
Compiler adalah program yang mengubah program dari satu tingkat
bahasa ke bahasa lainnya. Contoh konversi program C ++ ke dalam kode
mesin. How to set Environment Variables in Java: Path and Classpath
Kompiler java mengkonversi kode java tingkat tinggi ke bytecode (yang (Windows)
juga merupakan jenis kode mesin).
2
Jangan hapus variable value di PATH, tapi ditambahkan dipisahkan
dengan titik koma ( ; )
Jika setelah ini java belum bisa dieksekusi ganti CLASSPATH dengan
~/ cd /usr
/usr/ sudo mkdir java
/usr/ cd java
/usr/java/ sudo mv ~/Downloads/jdk-10.0.2_linux-x64_bin.tar.gz
/usr/java
/usr/java/ sudo tar xvzf jdk-10.0.2_linux-x64_bin.tar.gz
3
/usr/java/ JAVA_HOME=/usr/java/jdk-10.0.2/
/usr/java/ sudo update-alternatives --install /usr/bin/java java $ OOP Concept
{JAVA_HOME%*/}/bin/java 20000 1) Kelas atau ClassKelas adalah sekelompok entitas yang serupa. Ini
/usr/java/ sudo update-alternatives --install /usr/bin/javac javac $ hanya komponen logis dan bukan entitas fisik. Sebagai contoh, jika Anda
{JAVA_HOME%*/}/bin/javac 20000
memiliki kelas yang disebut "Mobil Mahal" itu bisa memiliki objek
seperti Mercedes, BMW, Toyota, dll. Sifat-sifatnya (data) atau properti
/usr/java/ java –version
dapat berupa harga atau kecepatan mobil-mobil ini. Sementara metode
atau method dapat dilakukan dengan mobil-mobil ini mengemudi,
mundur, mengerem, dll.
2) Obyek atau Object
First Code: helloworld.java Objek dapat didefinisikan sebagai turunan kelas, dan bisa ada beberapa
1. Hello World contoh kelas dalam suatu program. Objek berisi data dan fungsi, yang
class helloworld{ beroperasi pada data. Misalnya - kursi, sepeda, spidol, pena, meja, mobil,
public static void main(String args[]){
dll.
System.out.println("Hello World");
} 3) Warisan atau Inheritance
} Inheritance adalah konsep OOP di mana satu objek memperoleh properti
dan perilaku dari objek induk. Ini menciptakan hubungan orangtua-anak
What is OOP (Object Oriented Programming)? antara dua kelas. Ini menawarkan mekanisme yang kuat dan alami untuk
Pemrograman Berorientasi Objek atau PBO atau OOP adalah konsep
mengatur dan struktur perangkat lunak apa pun.
pemrograman yang bekerja berdasarkan prinsip bahwa objek adalah
4) Polimorfisme atau Polymorphism
bagian terpenting dari program Anda. Ini memungkinkan pengguna
membuat objek yang mereka inginkan dan kemudian membuat metode Polimorfisme mengacu pada kemampuan suatu variabel, objek atau
untuk menangani objek-objek itu. Memanipulasi objek-objek ini untuk fungsi untuk mengambil beberapa bentuk. Misalnya, dalam bahasa
mendapatkan hasil adalah tujuan dari Pemrograman Berorientasi Objek. Inggris, kata kerja "lari" memiliki arti yang berbeda jika Anda
menggunakannya dengan "laptop," "balapan kaki, dan" bisnis. & Rdquo
Pemrograman Berorientasi Objek yang dikenal sebagai OOP, digunakan Di sini, kami memahami arti "menjalankan" berdasarkan kata-kata lain
dalam bahasa pemrograman modern seperti Java.
4
digunakan bersama dengan itu. Hal yang sama juga berlaku untuk 3. Program besar sulit untuk ditulis, tetapi jika tim pengembangan dan
perancangan mengikuti konsep OOP maka mereka dapat mendesain
Polimorfisme.
dengan lebih baik dengan kekurangan minimum.
5) Abstraksi atau Abstraction
4. Ini juga meningkatkan modularitas program karena setiap objek ada
Abstraksi adalah tindakan mewakili fitur penting tanpa menyertakan secara mandiri.
detail latar belakang. Ini adalah teknik membuat tipe data baru yang
cocok untuk aplikasi tertentu. Misalnya, saat mengendarai mobil, Anda Klasifikasi program lain
tidak perlu khawatir dengan pekerjaan internalnya. Di sini Anda hanya 1. Bahasa Pemrograman Tidak Terstruktur: Bahasa yang paling primitif
perlu memperhatikan bagian-bagian seperti setir, Gears, akselerator, dll. dari semua bahasa pemrograman memiliki aliran kontrol secara
6) Enkapsulasi atau Encapsulation berurutan. Kode diulangi di sepanjang program
2. Bahasa Pemrograman Terstruktur: Memiliki aliran kontrol yang tidak
Enkapsulasi adalah teknik OOP membungkus data dan kode. Dalam
berurutan. Penggunaan fungsi memungkinkan penggunaan kembali
konsep OOPS ini, variabel-variabel suatu kelas selalu tersembunyi dari kode.
kelas-kelas lain. Itu hanya dapat diakses menggunakan metode kelas 3. Pemrograman Berorientasi Objek: Menggabungkan Data & Aksi
mereka saat ini. Misalnya - di sekolah, siswa tidak bisa ada tanpa kelas. Bersama.
7) Asosiasi atau Association
Asosiasi adalah hubungan antara dua objek. Ini mendefinisikan
keragaman antara objek. Dalam konsep OOP ini, semua objek memiliki
siklus hidup terpisah, dan tidak ada pemilik. Misalnya, banyak siswa
dapat mengaitkan dengan satu guru sementara satu siswa juga dapat
mengaitkan dengan banyak guru.
Advantages of OOP
1. OOP menawarkan kemudahan untuk dimengerti dan struktur modular
yang jelas untuk program.
2. Objek yang dibuat untuk Program Berorientasi Objek dapat
digunakan kembali dalam program lain. Dengan demikian menghemat
biaya pengembangan yang signifikan.
5
}
}
2. OOP
class Account{
public int account_number; Hasil:
public int account_balance;
Account Number 101
public void showdata(){
Account Balance 100
System.out.println("Account Number " Withdrawal sebanyak 50
+ account_number); Account Number 101
System.out.println("Account Balance " Account Balance 50
+ account_balance);
} Variables
public void withdrawal( int amount ){ Variabel adalah nama yang dikaitkan dengan nilai yang dapat diubah /
account_balance = account_balance - peubah. Misalnya int account_balance = 100; di sini nama variabel
amount; adalah account_balance yang menyimpan nilai 100, int adalah tipe data
System.out.println("Withdrawal sebanyak " yang menyatakan bahwa variabel ini dapat menyimpan nilai integer.
+ amount);
}
} Data Type
Tipe data menentukan nilai-nilai yang dapat diambil variabel, misalnya
class lat1{ jika suatu variabel memiliki tipe data int, hanya dapat mengambil nilai
public static void main(String args[]){
integer. Java memiliki dua kategori tipe data:
Account objAccount = new Account();
6
Ukuran default dari tipe data ini: 1 byte. tipe data boolean digunakan untuk variabel yang berlaku benar/true atau
salah/false.
short: 3. Tipe Data
Ini lebih besar dari byte dalam ukuran dan kurang dari integer. class lat2{
Jangkauannya adalah -32.768 hingga 32767. Ukuran default dari tipe data public static void main(String args[]){
ini: 2 byte. byte num1;
num1 = 113;
System.out.println(num1);
int
Digunakan ketika short tidak cukup besar untuk menahan jumlah short num2;
besar,memiliki jangkauan yang lebih luas: -2,147,483,648 hingga num2 = 150;
System.out.println(num2);
2,147,483,647. Ukuran default: 4 byte
long num3 = -12332252626L;
System.out.println(num3);
long
Digunakan ketika int tidak cukup besar untuk menahan nilai, memiliki double num4 = -42937737.9d;
jangkauan yang lebih luas daripada tipe data int, mulai dari - System.out.println(num4);
9.223.372.036.854.775.808 ke 9.223.372.036.854.775.807. float num5 = 19.98f;
ukuran: 8 byte. System.out.println(num5);
7
Hasil: age = age + 7;
System.out.println("Puppy age is : " + age);
113
}
150
-12332252626 public void kittenAge() {
-4.29377379E7 int age = 0; //Local Variable dalam Metode
19.98 kittenAge
false age = age + 5;
Z System.out.println("Kitten age is : " + age);
Beginners Java }
}
2) Jenis data non-primitif - Array dan String adalah tipe data non-primitif. class lat3{
Local Variables public static void main(String args[]) {
Variabel lokal dideklarasikan dalam metode, konstruktor, atau blok. Test test = new Test();
test.pupAge();
Variabel lokal dibuat ketika metode, konstruktor atau blok
test.kittenAge();
dimasukkan dan variabel akan dihancurkan begitu keluar dari metode, }
konstruktor, atau blokir. }
Pengubah akses tidak dapat digunakan untuk variabel lokal.
Variabel lokal hanya terlihat dalam metode yang dinyatakan, Hasil
konstruktor, atau blokir. Puppy age is : 7
Variabel lokal diimplementasikan pada tingkat tumpukan internal. Kitten age is : 5
Tidak ada nilai default untuk variabel lokal, sehingga variabel lokal
harus dideklarasikan dan nilai awal harus ditetapkan sebelum 5. Global Variable
penggunaan pertama. class Test {
public int age; // Global Variable
4. Local Varible
public void pupAge() {
class Test {
age = age + 7;
public void pupAge() {
System.out.println("Puppy age is : " + age);
int age = 0; //Local Variable dalam Metode
}
pupAge
8
public void kittenAge() { Variabel statis disimpan dalam memori statis. Sangat jarang
age = age + 5; menggunakan variabel statis selain yang dinyatakan final dan
System.out.println("Kitten age is : " + age); digunakan sebagai konstanta publik atau privat.
}
}
Variabel statis dibuat ketika program dimulai dan dihancurkan ketika
program berhenti.
class lat4{ Visibilitas mirip dengan variabel instan. Namun, sebagian besar
public static void main(String args[]) { variabel statis dinyatakan publik karena harus tersedia untuk
Test test = new Test();
pengguna kelas.
test.pupAge();
test.kittenAge(); Nilai default sama dengan variabel instan. Untuk angka, nilai
} standarnya adalah 0; untuk Boolean, itu salah; dan untuk referensi
} objek, itu nol. Nilai dapat ditetapkan selama deklarasi atau dalam
konstruktor. Selain itu, nilai dapat ditetapkan dalam blok
hasil penginisialisasi statis khusus.
Puppy age is : 7 Variabel statis dapat diakses dengan memanggil dengan nama kelas
Kitten age is : 12 ClassName.VariableName.
Saat mendeklarasikan variabel kelas sebagai public static final, maka
Static Variables nama variabel (konstanta) semuanya dalam huruf besar. Jika variabel
Variabel kelas juga dikenal sebagai variabel statis dideklarasikan statis tidak umum dan final, sintaks penamaan adalah sama dengan
dengan kata kunci static di kelas, tetapi di luar metode, konstruktor contoh dan variabel lokal.
atau blok.
Hanya akan ada satu salinan dari setiap variabel kelas per kelas, 6. Static Variable
terlepas dari berapa banyak objek yang dibuat darinya. class Test {
Variabel statis jarang digunakan selain dinyatakan sebagai konstanta. public static int age;
Konstanta adalah variabel yang dideklarasikan sebagai publik /
public void pupAge() {
private, final, dan static. Variabel konstan tidak pernah berubah dari age = age + 7;
nilai awalnya. System.out.println("Puppy age is : " + age);
}
9
age = age + 5; Arithmetic Operators / Operator Aritmatik
System.out.println("Kitten age is : " + age); Operator aritmatika digunakan dalam ekspresi matematika dengan cara
} yang sama seperti yang digunakan dalam aljabar.
}
Misal :
class lat5{
public static void main(String args[]) { int A = 10; int B = 20;
System.out.println("Variabel Age dari objek
test1"); Operator Description Example
Test test1 = new Test();
test1.pupAge();
test1.kittenAge(); Adds values on either side of the
+ (Addition) A + B will give 30
operator.
System.out.println("Variabel Age dari objek
test2");
Test test2 = new Test(); - Subtracts right-hand operand
A - B will give -10
test2.pupAge(); (Subtraction) from left-hand operand.
test2.kittenAge();
}
} *
Multiplies values on either side
(Multiplicatio A * B will give 200
of the operator.
Hasil n)
Variabel Age dari objek test1
Puppy age is : 7 Divides left-hand operand by
Kitten age is : 12 / (Division) B / A will give 2
right-hand operand.
Variabel Age dari objek test2
Puppy age is : 19
Kitten age is : 24 Divides left-hand operand by
% (Modulus) right-hand operand and returns B % A will give 0
remainder.
10
++ Increases the value of operand value of right operand, if yes
B++ gives 21
(Increment) by 1. then condition becomes true.
11
Binary XOR Operator copies
^ (bitwise (A ^ B) will give 49
Bitwise Operators / Operator Bitwise the bit if it is set in one operand
Java mendefinisikan beberapa operator bitwise, yang dapat diterapkan ke XOR) which is 0011 0001
but not both.
tipe integer, panjang, int, short, char, dan byte.
Operator Bitwise bekerja pada bit dan melakukan operasi bit-demi-bit. (~A ) will give -61
~ (bitwise Binary Ones Complement which is 1100 0011 in
Asumsikan jika a = 60 dan b = 13; sekarang dalam format biner mereka
compliment Operator is unary and has the 2's complement form
akan menjadi seperti berikut
) effect of 'flipping' bits. due to a signed binary
128 64 32 16 8 4 2 1
number.
a= 0 0 1 1 1 1 0 0
b= 0 0 0 0 1 1 0 1 Binary Left Shift Operator. The
128 64 32 16 8 4 2 1
<< (left left operands value is moved A << 2 will give 240
a&b= 0 0 0 0 1 1 0 0
a|b = 0 0 1 1 1 1 0 1 shift) left by the number of bits which is 1111 0000
a^b = 0 0 1 1 0 0 0 1 specified by the right operand.
~a = 1 1 0 0 0 0 1 1
Binary Right Shift Operator.
Operator Description Example The left operands value is
>> (right A >> 2 will give 15
moved right by the number of
Binary AND Operator copies a shift) which is 1111
& (bitwise (A & B) will give 12 bits specified by the right
bit to the result if it exists in
and) which is 0000 1100 operand.
both operands.
>>> (zero Shift right zero fill operator. A >>>2 will give 15
| (bitwise Binary OR Operator copies a (A | B) will give 61
fill right The left operands value is which is 0000 1111
or) bit if it exists in either operand. which is 0011 1101
shift) moved right by the number of
12
bits specified by the right Simple assignment operator. Assigns C = A + B will
operand and shifted values are = values from right side operands to assign value of A
filled up with zeros. left side operand. + B into C
13
It takes modulus using two operands equivalent to C =
b = (a == 10) ? 20: 30;
and assign the result to left operand. C%A System.out.println( "Value of b is : " + b );
}
C <<= 2 is same }
<<= Left shift AND assignment operator.
as C = C << 2 Hasil:
7. Conditional ( ? : )
public class Test {
14
Loop / Perulangan System.out.print("\n");
Pernyataan loop memungkinkan kita untuk mengeksekusi pernyataan atau }
kelompok pernyataan beberapa kali. }
}
9. While Loop
public class Test {
15
public static void main(String args[]) { do{
System.out.print("Nilai x : " + x );
for(int x = 1; x < 10; x = x + 1) { x++;
System.out.print("Nilai x : " + x ); System.out.print("\n");
System.out.print("\n"); }while( x < 10 );
} }
} }
}
12. Simple If
public class Test {
11. Do While Loop public static void main(String args[]) {
public class Test { int x = 10;
16
} }else{
} System.out.println("Tidak Lulus");
} }
}
}
13. If Else
public class Test {
17
System.out.println(x.equals(z));
System.out.println(x.equals(a));
}
Compare To
}
◦ Jika Nilai yang dibandingkan sama maka 0.
18
} float f = -90;
}
System.out.println(Math.abs(a));
System.out.println(Math.abs(d));
System.out.println(Math.abs(f));
20. Parse }
public class Test { }
System.out.println(Math.floor(d));
21. Absolute System.out.println(Math.floor(f));
public class Test { }
}
public static void main(String args[]) {
Integer a = -8;
double d = -100;
19
Hasil Random rand = new Random();
int num = rand.nextInt( (max - min) + 1) + min;
-100.0
-90.0 System.out.println( num );
-101.0 }
-91.0 }
25. Power
23. Random public class Test {
public class Test {
public static void main(String args[]) {
public static void main(String args[]) { int x = 2;
System.out.println( Math.random() ); int y = 3;
System.out.println( Math.random() );
} System.out.println( Math.pow(x, y) );
} }
}
Hasil (berubah-ubah)
0.5835753446304763
0.2596312267596228 26. Square Root
public class Test {
20
System.out.println(s);
}
Character and String }
public class StringDemo {
Hasil
public static void main(String args[]) {
char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.' }; Kuliah di IBI Kosgoro
String helloString = new String(helloArray);
System.out.println( helloString );
29. Str.Replace
int len = helloString.length();
import java.io.*;
System.out.println( "Panjang String : " + len );
public class Test {
}
} public static void main(String args[]) {
String Str = new String("lima");
27. Char At
public class Test { System.out.print("hasil :" );
System.out.println(Str.replace('i', 'a'));
public static void main(String args[]) {
String str = "String terdiri atas beberapa System.out.print("hasil :" );
karakter"; System.out.println(Str.replace('m', 'g'));
char result = str.charAt(8); }
System.out.println(result); }
}
} Hasil:
hasil :lama
hasil :liga
28. Concat
public class Test {
21
Array Hasil
Java menyediakan struktur data Array, yang menyimpan kumpulan secara 1.9
sekuensial dari elemen-elemen dengan tipe yang sama. Array digunakan 2.9
3.4
untuk menyimpan kumpulan data, tetapi dapat juga disebut kumpulan 3.5
variabel dari tipe data yang sama. Total = 11.7
30. Simple Array Max = 3.5
public class TestArray {
31. Array with element loop
public static void main(String[] args) { public class TestArray {
double[] myList = {1.9, 2.9, 3.4, 3.5};
public static void main(String[] args) {
// Print all the array elements double[] myList = { 5, 4, 7, 6};
for (int i = 0; i < myList.length; i++) {
System.out.println(myList[i] + " "); // Print all the array elements
} for (double element: myList) {
System.out.println(element);
// Summing all elements }
double total = 0; }
for (int i = 0; i < myList.length; i++) { }
total += myList[i];
} Hasil:
System.out.println("Total = " + total);
5.0
// Finding the largest element 4.0
double max = myList[0]; 7.0
for (int i = 1; i < myList.length; i++) { 6.0
if (myList[i] > max) max = myList[i];
} 32. Array with for loop
System.out.println("Max = " + max);
public class TestArray {
}
}
public static void main(String[] args) {
printArray(new int[]{3, 1, 2, 6, 4, 2});
22
} min = n1[i];
}else{
public static void printArray(int[] array) { min = n1[i-1];
for (int i = 0; i < array.length; i++) { }
System.out.print(array[i] + " "); }
}
} return min;
} }
}
Hasil
312642
34. Overloading
Method / Metode public class ExampleOverloading {
Metode adalah apa yang objek bisa lakukan. Metode dalam Obeject public static void main(String[] args) {
Oriented Programming (OOP) ditulis dalam bentuk fungsi. Contoh fungsi int a = 11;
int b = 6;
untuk mencari nilai paling kecil dalam array. double c = 7.3;
33. Method in Object double d = 9.4;
int[] array = { 11, 4,8, 2, 9, 3 };
public class ExampleMinNumber {
int result1 = minFunction(a, b);
public static void main(String[] args) {
int[] a = { 11, 4,8, 2, 9, 3 };
// same function name with different parameters
int c = minimum(a);
double result2 = minFunction(c, d);
System.out.println("Nilai paling kecil = " +
c);
int result3 = minFunction(array);
}
System.out.println("Minimum Value = " +
public static int minimum(int[] n1) {
result1);
int min = 0;
System.out.println("Minimum Value = " +
result2);
for( int i = 1; i < n1.length; i++ ){
System.out.println("Minimum Value = " +
if( n1[i] < n1[i-1] ){
result3);
23
}
return min;
// for integer }
public static int minFunction(int n1, int n2) { }
int min;
if (n1 > n2)
min = n2;
else 35. Constructor
min = n1;
// A simple constructor.
return min; class MyClass {
} int x;
public static int minFunction(int[] n1) { public static void main(String args[]) {
int min = 0; MyClass t1 = new MyClass();
MyClass t2 = new MyClass();
for( int i = 1; i < n1.length; i++ ){ MyClass t3 = new MyClass(15);
if( n1[i] < n1[i-1] ){ System.out.println(t1.x + " " + t2.x +"
min = n1[i]; "+t3.x);
}else{ }
min = n1[i-1]; }
}
}
24
System.out.println("value of instance variable
num is : "+this.num);
36. Keyword This
public class This_Example { // Invoking the greet method of a class
// Instance variable num this.greet();
int num = 10; }
25
Inheritance class My_Calculation extends Calculation {
public void kali(int x, int y) {
Inheritance dapat didefinisikan sebagai proses di mana satu kelas z = x * y;
memperoleh properti (metode dan bidang) dari yang lain. Dengan System.out.println("Hasil perkalian:"+z);
menggunakan warisan informasi dibuat dikelola dalam urutan hirarkis. }
26
Overriding adalah kemampuan untuk mendefinisikan perilaku yang
spesifik untuk jenis subkelas, yang berarti subkelas dapat menerapkan 38. Overriding
metode kelas induk berdasarkan kebutuhannya. class Animal {
Dalam istilah berorientasi objek, overriding adalah sarana untuk public void move() {
mengganti fungsi dari metode yang ada. System.out.println("Binatang dapat bergerak");
}
Aturan Overriding }
Daftar argumen yang dimasukkan ke dalam metode harus persis sama class Dog extends Animal {
dengan metode yang di override. public void move() {
Tipe data return value harus sama atau subtipe dari tipe data return System.out.println("Anjing dapat bergerak dan
value yang dideklarasikan dalam metode asli di superclass. berlari");
}
Tingkat akses tidak bisa lebih ketat daripada tingkat akses metode yang public void bark() {
di override. Sebagai contoh: Jika metode superclass dinyatakan publik System.out.println("Anjing dapat menggongong");
maka metode override di kelas sub tidak dapat berupa private atau }
protected. }
Instance method dapat ditimpa hanya jika mereka diwarisi oleh public class TestDog {
subclass.
Metode yang dinyatakan final tidak dapat di override. public static void main(String args[]) {
Animal a = new Animal(); // Animal reference
Metode yang dinyatakan statis tidak dapat di override tetapi dapat and object
dideklarasikan ulang. Animal b = new Dog(); // Animal reference but
Jika suatu metode tidak dapat diwariskan, maka itu tidak dapat di Dog object
override. Contoh metode tersebut bersifat private.
a.move(); // runs the method in Animal class
Subkelas dalam paket yang sama dengan superclass dapat meng- b.move(); // runs the method in Dog class
override metode superclass apa pun yang tidak dinyatakan sebagai b.bark();
private atau final. }
}
Subkelas dalam paket yang berbeda hanya dapat menggantikan metode
non-final yang dinyatakan public atau protected. Hasil:
Constructor / Konstruktor tidak dapat ditimpa.
TestDog.java:25: error: cannot find symbol
27
b.bark(); }
^
symbol: method bark()
location: variable b of type Animal
1 error
Controlling Access to Members of a Class
39. Overriding & Reference
class Animal { Access class modifier menentukan apakah kelas lain dapat menggunakan
public void move() { data tertentu atau memanggil metode tertentu. Ada dua tingkat kontrol
System.out.println("Binatang dapat bergerak"); akses:
}
} 40. Public Member Access
import java.io.*;
class Dog extends Animal { class Karyawan {
public void move() {
System.out.println("Anjing dapat bergerak dan public String nama;
berlari"); public int umur;
} public String penugasan;
public void bark() { public double gaji;
System.out.println("Anjing dapat menggongong");
} public Karyawan(String nama){
} this.nama = nama;
}
public class TestDog {
/* Print the Employee details */
public static void main(String args[]) { public void cetak() {
Animal a = new Animal(); // Animal reference System.out.println("Name:"+ this.nama );
and object System.out.println("Age:" + this.umur );
Dog b = new Dog(); // Animal reference but System.out.println("Designation:" +
Dog object this.penugasan );
System.out.println("Salary:" + this.gaji );
a.move(); // runs the method in Animal class }
b.move(); // runs the method in Dog class }
b.bark();
} public class Main{
28
public void set_umur(int umur) {
public static void main(String args[]) { this.umur = umur;
Karyawan empOne = new Karyawan("James Smith"); }
29
Engineer");
empOne.set_gaji(1000); public void cetak() {
empOne.cetak(); System.out.println("Name:"+ this.nama );
System.out.println("Age:" + this.umur );
empTwo.set_umur(21); System.out.println("Designation:" +
empTwo.set_penugasan("Software Engineer"); this.penugasan );
empTwo.set_gaji(500); System.out.println("Salary:" + this.gaji );
empTwo.cetak(); }
} }
}
class Staf_Ahli extends Karyawan {
Hasil: public Staf_Ahli(String nama){
super(nama);
Name:James Smith }
Age:26
Designation:Senior Software Engineer public void cetak() {
Salary:1000.0 System.out.println("Name:"+ this.nama );
Name:Mary Anne System.out.println("Age:" + this.umur );
Age:21 System.out.println("Designation:" +
this.penugasan );
Designation:Software Engineer
System.out.println("Salary:" + this.gaji );
Salary:500.0
}
}
42. Protected Access Member
import java.io.*; public class Main{
30
}
31