Program
I-1a Employee.java dan Tugas I-3a
public class Employee {
public
String name = "";
public
int salary;
public
String birthdate="";
public
Employee (){
}
public
Employee(String name, int salary, String birthdate ){
this.name
= name;
this.salary
= salary;
this.birthdate
= birthdate;
}
public
void setName(String name){
name = name;
System.out.print("Masukkan Nama :
"+name);
}
public
void setSalary(int salary){
salary
= salary;
System.out.print("Gaji
Tiap Bulan "+salary);
}
public
int getSalary(){
return
salary;
}
public
void setBirthdate(String birthdate){
birthdate
= birthdate;
System.out.print("Tanggal
Lahir : "+birthdate);
}
public
String getBirthdate(){
return
birthdate;
}
public
String getDetails() {
return "Name :
"+name+"\n"+"Birthdate :
"+birthdate+"\n"+"Salary "+salary;
}
}
Analisa
Porgram I-1a
Membuat class Employee
yang bertipe public agar dapat diakses oleh class lain. Class ini tidak
terdapat method main dan method yang berada pada class Employee dapat
diwariskan pada class yang membutuhkan.
Tugas
I-1a
import java.util.Scanner;
public class TestEmployee extends Employee{
public
static void main (String[] args) {
String
a=""; String b="";
Scanner
input = new Scanner(System.in);
Employee dea = new Employee();
dea.setName(a);
a=input.nextLine();
dea.setBirthdate(b);
b=input.nextLine();
dea.setSalary(1000000);
}
}
Analisa
Menggunakan class yang
sudah dibuat untuk memanggil method yang ada dengan cara mambuat objek dari
class yang akan dieksekusi.
Program
I-1b Manager.java dan Tugas I-3b
public class Manager {
public
String name = "";
public
double salary;
public
String birthdate;
public
String department;
Manager(String
department){
//super("Administrasi");
this.department
= department;
}
public
void Manager(String name, double salary, String birthdate ){
this.name
= name;
this.salary
= salary;
this.birthdate
= birthdate;
}
public
String getName(){
return
name;
}
public
void setName(String nm){
name = nm;
}
public
void setSalary(double salary){
salary
= salary;
}
public
double getSalary(){
return
salary;
}
public
void setDepartment(String dp){
department
= dp;
}
public
String getDepartment(){
return
department;
}
public
String getDetails() {
return "Name :
"+name+"\n"+"Birthdate : "+birthdate+
"\n"+"Department : "+department;
}
}
Analisa
Porgram I-1b
Sama seperti program
diatas, class ini tidak terdapat method main, tetapi dapat diakses oleh class
lain.
Tugas
I-1b
public class Manager1 extends Employee {
public String department;
public Manager1(){
System.out.println("Nama "+name);
}
public void
setDepartment(String department){
department = department;
}
public
String getDepartment(){
return department;
}
public
static void main (String[] args) {
Employee
dea = new Employee();
dea.setName("DEA
AGNIA");
dea.getName();
}
}
Program
I-2 StudentRecordExample.java
public class StudentRecordExample {
public
static void main (String []args){
//
membuat 3 object StudentRecord
StudentRecord
annaRecord = new StudentRecord();
StudentRecord
beahRecord = new StudentRecord();
StudentRecord
crisRecord = new StudentRecord();
//
memberi nama siswa
annaRecord.setName("Anna");
beahRecord.setName("Beah");
crisRecord.setName("Cris");
//
menampilkan nama siswa "Anna"
System.out.println(annaRecord.getName());
//
menampilkan jumlah siswa
System.out.println("Count="+StudentRecord.getStudentCount());
}
}
Analisa
Porgram I-2
Program ini berisi method untuk pengeksekusian program yang
telah dibuat pada class sebelumnya, dengan menggunakan objek maka method yang
ada pada class sebelumnya dapat ditampilkan. Sintaks getStudentCount(); digunakan sebagai counter, yang jika objek
ditambhkan pada program diatas, maka count akan bertambah sebanyak objek yang
dituliskan.
Program
I-2a
public class StudentRecord{
private
String name;
private
String address;
private
int age;
private
static int studentCount;
/**
*
Menghasilkan nama dari siswa
*/
public
String getName(){
return
name;
}
/**
*
Mengubah nama siswa
*/
public
void setName(String temp){
name
= temp;
}
/**
*
Menghasilkan jumlah instance StudentRecord
*/
public
static int getStudentCount(){
return
studentCount;
}
}
Analisa
Program ini merupakan class
yang dibutuhkan pada class StudenRecordExample, karena objek pada objek yang
dibuat yaitu :
StudentRecord annaRecord
= new StudentRecord();
yang artinya, memanggil
class dari studentRecord dan method yang ada pada class tersebut akan
dieksekusi.
Program
I-4a Point.java
public class Point {
private
int x;
private
int y;
private
int z;
//Konstruktor
public
Point (int x, int y, int z){
this.x
= x;
this.y
= y;
this.z
= z;
}
//geser
titik pada ruang
public
void geser (int dx, int dy, int dz){
x+=dx;
y+=dy;
z+=dz;
}
//overload
1, hanya geser pada sumbu x
public
void geser (int dx){
x+=dx;
}
//overload
2, hanya geser pada sumbu x dan y
public
void geser (int dx, int dy){
x+=dx;
y+=dy;
}
public
int getX(){
return
x;
}
public
int getY(){
return
y;
}
public
int getZ(){
return
z;
}
}
Analisa
Program yang tidak
memiliki method main, program ini dapat dieksekusi pada class lain dengan
memanggil method yang telah ada.
Program
I-4b CobaPoint.java
public class CobaPoint {
public
static void main (String[] args) {
//instansiasi objek
Point p = new Point(1,2,3);
System.out.println("p("+p.getX()+","+p.getY()+","+p.getZ()+"
)\n");
//menggeser ke (0,0,0)
p.geser(-1,-2,-3);
System.out.println("Geser point p, posisi
akhir p("+p.getX()+","+p.getY()+","+p.getZ()+"
)\n");
//menggeser ke (1,1,0)
p.geser(1,1);
System.out.println("Geser Posisi Akhir
p("+p.getX()+","+p.getY()+","+p.getZ()+"
)\n");
//menggeser ke (3,1,0)
p.geser(2);
System.out.println("Geser Posisi Akhir
p("+p.getX()+","+p.getY()+","+p.getZ()+"
)\n");
}
}
Analisa
Pada program ini,
memanggil class Point diatas, dengan memanggil method dan terdapat method main
untuk menjalankan program ini.
Program
I-5a Binatang.java
public class Binatang {
Binatang(String jenis) {
this.jenis = jenis;
}
protected
void suara(){
}
public
String toString(){
return "Seekor " +jenis;
}
private
String jenis;
}
Analisa
Class ini dapat dipanggil
methodnya jika diperlukan oleh class lain tetapi isinya dapat dibedakan atau
bisa disebut dengan overriding method
Program
I-5b Burung.java
public class Burung extends Binatang {
Burung(String nama) {
super("Burung");
this.nama = nama;
}
public
void suara(){
System.out.println("Berkicau");
}
public
String toString(){
return super.toString()+" "+nama;
}
private
String nama;
}
Analisa
Merupakan class anak dari
class binatang, semua method yang berada pada class ini sama seperti class
binatang, akan tetapi isi dari method berbeda.
Program
I-5c Kambing.java
public class Kambing extends Binatang {
Kambing(String nama) {
super("Kambing");
this.nama = nama;
}
public
void suara(){
System.out.println("Mengembik");
}
public
String toString(){
return super.toString()+" "+nama;
}
private
String nama;
}
Analisa
Merupakan class anak dari
class binatang, semua method yang berada pada class ini sama seperti class
binatang, akan tetapi isi dari method berbeda.
Program
I-5d CobaPoly.java
import java.util.Random;
public class CobaPoly {
public
static void main (String[] args) {
Binatang[] peliharaanku = {new
Burung("Kutilang"), new Kambing("Etawa")};
Binatang kesayangan;
Random pilihan = new Random();
//memilih secara acak
kesayangan = peliharaanku[pilihan.nextInt(peliharaanku.length)];
System.out.println("Binatang Kesayangan
Anda : "+kesayangan);
System.out.println("Suaranya ");
kesayangan.suara();
}
}
Analisa
Program ini merupakan
program yang memanggil class binatang, dengan merandom class burung dan
kambing. Pada class ini meng-import random untuk mengacak hasil yang akan
keluar.
Program
I-7a SuperHero.java
abstract class SuperHero {
String
superPower[];
void
setSuperPower(String superPower[]){
this.superPower
= superPower;
}
void
printSuperPower(){
for(int
i = 0; i<superPower.length; i++){
System.out.println(superPower[i]);
}
}
abstract
void displayPower();
}
Analisa
Program yang masih
bersifat abstract untuk nantinya dijalankan pada class anak atau turunannya.
Program
I-7b UnderWaterSuperHero.java
public class UnderwaterSuperHero extends SuperHero {
void
displayPower(){
System.out.println("Communicate with sea
creatures . . .");
System.out.println("Fast Swimming ability
...");
}
}
Analisa
Merupakan
class abcstract, yang diturunkan dari class SuperHero. Class ini masih bersifat
abstract karena penggambaran pada method masih mencakup luas. Program ini tidak
dapat dijalankan karena tidak terdapat method main didalamnya.
Program
I-7c FlyingSuperHero.java
public class FlyingSuperHero extends SuperHero {
void
displayPower(){
System.out.println("Fly ...");
}
}
Analisa
Sama
seperti program diatas, program ini merupakan class abcstract,
yang diturunkan dari class SuperHero. Class ini masih bersifat abstract karena
penggambaran pada method masih mencakup luas. Program ini tidak dapat
dijalankan karena tidak terdapat method main didalamnya.
Program
I-8a MyInterface.java
interface MyInterface {
void
iMethod(){
}
Analisa
Class interface yang memiliki method yang dapat
diimplemenrtasikan oleh class lain.
Program
I-8b MyClass1.java
class Myclass1 implements MyInterface {
public
void iMethod() {
System.out.println("Interface Method
");
}
void
MyMethod(){
System.out.println("Another
Method");
}
}
Analisa
Program ini merupakan
program yang menggunakan class interface, dengan isi method yang sudah ada dan
siap dieksekusi.
Program
I-8c MyClass2.java
class Myclass2 implements MyInterface {
public
void iMethod() {
System.out.println("Another
Implemetation");
}
}
Analisa
Program ini sama seperti program diatas, merupakan implements
dari class interface.
Program
I-8d MyInterfaceDemo.java
public class InterfaceDemo {
public
static void main (String[] args) {
Myclass1 mc1 = new Myclass1();
Myclass2 mc2 = new Myclass2();
mc1.iMethod();
mc1.MyMethod();
mc2.iMethod();
}
}
Analisa
Memanggil class dari MyClass1 dan MyClass2 yang mana
class tersebut merupakan implements dari class MyInterface.
0 Response to "Pemrograman Objek Lanjut (Java)"
Post a Comment