Pemrograman Objek Lanjut (Java)

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