Selasa, 31 Maret 2015

Tugas 4 - Use Case dan Squence Diagram

Nama Matakuliah        : Pemrograman Berorientasi Objek
Nama                           : I Gusti Ngurah Yoga Pawitra
NIM                             : 1404505052 
Nama Dosen                : I Putu Agus Eka Pratama ST.,MT
Jurusan                        : Teknologi Informasi
Fakultas                       : Teknik
Universitas                  : Udayana



Squence Diagram

   Diagram sekuen menggambarkan hubungan antara  objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek. Oleh karena itu untuk menggambar diagram sekuen maka harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas yang diinstansiasi menjadi objek itu.

Diagram sekuen dapat berupa sebuah diagram sekuen yg bersifat umum yang menunjukkan semua skenario yang mungkin untuk semua use case, atau terpisah-pisah untuk tiap skenario tunggal di dalam use case.

Diagram sekuen yang digunakan  pada  analisis dan tahap desain, namun pada tahap desain, diagram sekuen sangat implementasi spesifik sering kali objek database  atau GUI sering termasuk sebagai  komponen  kelas tertentu.


Simbol-simbol yang digunakan pada diagram sekuen adalah sebagai berikut.


    Baiklah kita langsung saja ke studi kasus, studi kasus kita kali ini  mengenai sistem administrasi akademik (menurut Simak Fakultas Teknik Universitas Udayana). Aplikasi yang saya gunakan untuk merancang beberapa diagram dibawah ini adalah Dia Diagram. Berikut adalah Diagram Use Case-nya.



    Gambar  orang pada usecase diagram tersebut disebut dengan actor, sebagai subjek yang melakukan suatu tindakan. Sedangkan bentuk oval pada usecase melambangkan aktifitas yang dilakukan subjek. berikut Squence-nya.



    Gambar manusia pada sequence adalah elemen actor digunakan untuk menghadirkan pemakai yang memulai alur peristiwa atau kejadian. Sedangkan bentuk-bentuk bulat pada bagian atas sequence adalah elemen yang ditiru seperti boundary, control dan entity, digunakan untuk menggambarkan layar, pengontrol, dan materi database, secara berturut-turut. Masing-masing elemen yang dihubungkan garis-garis batang disebut suatu lifeline. Dimana jika unsur itu berpotensi mengambil bagian dalam interaksi itu.
Sekian penjelasan use case dan squence diagram semoga membantu :)



Tugas 4 - Overriding Java

Nama Matakuliah        : Pemrograman Berorientasi Objek
Nama                           : I Gusti Ngurah Yoga Pawitra
NIM                             : 1404505052 
Nama Dosen                : I Putu Agus Eka Pratama ST.,MT
Jurusan                        : Teknologi Informasi
Fakultas                       : Teknik
Universitas                  : Udayana



    Pada kesempatan kali ini, kita mencoba membuat contoh program overriding pada Java. Overriding itu sendiri adalah method Sub Class yang sama dengan method Super Class, yang parameternya sama namun memiliki pernyataan atau implementasi yang berbeda.

    Subclass dapat mengesampingkan method yang didefinisikan dalam superclass dengan menyediakan implementasi baru dari method tersebut. Fungis dari overriding adalah:
- metode overriding yang digunakan untuk menyediakan implementasi khusus dari metode     yang sudah disediakan oleh kelas super.
- metode overriding yang digunakan pada runtime polimorfisme.

Aturannya adalah:
- metode harus memiliki nama yang sama seperti pada kelas induk
- metode harus memiliki parameter yang sama seperti pada kelas induk.
- harus memiliki hubungan interitance.

oke langsung saja kita mencobanya, pada postingan ini saya menggunakan Netbeans. Pertama-tama buatlah file java baru. kemudian tuliskan koding berikut :

class Ikan{

   public void swim(){
      System.out.println("Ikan bisa berenang");
   }
}


class Piranha extends Ikan{

   public void swim(){
      System.out.println("Piranha bisa makan daging");
   }
}


public class Fish {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Ikan a = new Ikan(); // Ikan sebagai referensi dan objek
      Ikan b = new Piranha(); // Ikan sebagai referensi tetapi Piranha sebagai objek

      a.swim();// menjalankan method pada kelas Ikan

      b.swim();// menjalankan method pada kelas Piranha
     
    }
  
}
     Pada program di atas terlihat bahwa method swim() pada Super Class yaitu Kelas Ikan di-overide di SUb Class yaitu Kelas Piranha. Parameter pada kedua kelas tersebut sama yaitu tidak memiliki parameter, tetapi perbedaannya terletak pada implementasinya yaitu mencetak kalimat yang berbeda. Berikut adalah hasil program setelah dijalankan.

Selamat mencoba :) 

Tugas 4 - Kalkulator Sederhana dengan Java

Nama Matakuliah        : Pemrograman Berorientasi Objek
Nama                           : I Gusti Ngurah Yoga Pawitra
NIM                             : 1404505052 
Nama Dosen                : I Putu Agus Eka Pratama ST.,MT
Jurusan                        : Teknologi Informasi
Fakultas                       : Teknik
Universitas                  : Udayana



    Pada kesempatan kali ini saya akan menjelaskan bagaimana membuat kalkulator sederhana dengan java. Program kalkulator ini sendiri merupakan program sederhana yang meliputi proses perhitungan - perhitungan seperti penjumlahan, pengurangan, perkalian, pembagian, dan modulus.
baik langsung saja kita membuat dengan pertama membuat file java baru seperti biasanya, kemudian tuliskan koding dibawah ini
//Menggunakan kelas java IO
import java.io.*;

// Kelas utama : kalkulator
public class Kalkulator{

/* Memiliki 7 methode :
 * Pemilihan Menu, Input Angka, dan
 * Operasi angka (Penjumlahan, Pengurangan, Perkalian, Pembagian, Modulus).
 */

   //Methode untuk operasi penjumlahan 
   public int tambah (int a, int b) {
      int c = a + b ;
      return c;
   }

   //Methode untuk operasi pengurangan
   public int kurang (int a, int b) {
      int c = a - b;
      return c;
   }

   //Methode untuk operasi perkalian
   public int kali (int a, int b) {
      int c = a * b;
      return c;
   }

   //Methode untuk operasi pembagian
   public float bagi (int a, int b) {
      int c = a / b;
      return c;
   }
  
   //Metode untuk operasi modulus
   public int mod (int a, int b) {
      int c = a % b;
      return c;
   } 

   //Methode untuk input angka
   public int inputangka () {
      String angka;
      int a2 = 0;
      try {
         BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
         angka = buffer.readLine();
         a2 = Integer.parseInt(angka);
      }
      catch (IOException e) {
         System.err.println("Maaf, terjadi kesalahan berikut : " + e);
      }
      return a2;    
   }

   //Methode untuk pemilihan menu di kalkulator
   public void pilihmenu (int pilih) {
      int a, b;
      float c;
      switch (pilih) {
         case 1 :
            System.out.println("Penjumlahan");
            System.out.println("Angka pertama = ");
            a = this.inputangka();
            System.out.println("Angka kedua   = ");
            b = this.inputangka();
            c = this.tambah(a,b);
            System.out.println("Hasil         = " + c);
            System.out.println("");
            break;
         case 2 :
            System.out.println("Pengurangan");
            System.out.println("Angka pertama = ");
            a = this.inputangka();
            System.out.println("Angka kedua   = ");
            b = this.inputangka();
            c = this.kurang(a,b);
            System.out.println("Hasil     = " + c);
            System.out.println("");
            break;
         case 3 :
            System.out.println("Perkalian");
            System.out.println("Angka pertama = ");
            a = this.inputangka();
            System.out.println("Angka kedua   = ");
            b = this.inputangka();
            c = this.kali(a,b);
            System.out.println("Hasil         = " + c);
            System.out.println("");
            break;
         case 4 :
            System.out.println("Pembagian");
            System.out.println("Angka pertama = ");
            a = this.inputangka();
            System.out.println("Angka kedua   = ");
            b = this.inputangka();
            c = this.bagi(a,b);
            System.out.println("Hasil         = " + c);
            System.out.println("");
            break;
         case 5 :
            System.out.println("Modulus");
            System.out.println("Angka pertama = ");
            a = this.inputangka();
            System.out.println("Angka kedua   = ");
            b = this.inputangka();
            c = this.mod(a,b);
            System.out.println("Hasil         = " + c);
            System.out.println("");
            break;
         case 6 :
            System.out.println ("Terima kasih.");
            System.out.println("");
            break;
         default :
            System.out.println("Maaf pilihan anda salah. Mohon ulangi lagi.");
            System.out.println("");
      }
   }
  
   //kata "main" menunjukkan kelas utama
   public static void main(String[] args) {
      int pilih;
      
      //instansiansi objek
      Kalkulator kalkulator = new Kalkulator();
     
      //Tampilan program
      //Menggunakan do.. while..
      do {
         System.out.println("------------ KALKULATOR ------------");
         System.out.println("Pilih salah satu menu di bawah ini :");
         System.out.println("1. Penjumlahan");
         System.out.println("2. Pengurangan");
         System.out.println("3. Perkalian");
         System.out.println("4. Pembagian");
         System.out.println("5. Modulus");
         System.out.println("6. Keluar");
         System.out.println("------------------------------------");
         System.out.println("");
         System.out.println("Pilihan anda? ");
         pilih = kalkulator.inputangka();
         kalkulator.pilihmenu(pilih);
      }
    Program ini terdiri dari class Kalkulator yang memiliki 7 buah method yaitu operasi penjumlahan, pengurangan, perkalian, pembagian, dan modulus, serta menginputan angka dan pemilihan menu. Masing-masing method tersebut mempunyi fungsi sesuai namanya.
Pada fungsi main, disana digunakan sintaks do-while. Penggunaannya hanya untuk proses pengulangan ketika inputan yang dimasukkan dari keyboard (variable pilih) tidak sama dengan 6. Selain itu di method pemilihan menu, disana digunakan operasi switch. Fungsinya adalah untuk melakukan pemilihan kondisi sesuai inputan pada variable pilih, yang dinyataan melalui case 1 sampai case 6, sedangkan default akan berjalan apabila variable pilih diinputkan selain angka 1 sampai 6.
     Pada sintaks di atas terdapat penggunaan dari Kelas Java IO "import java.io.*;". Penggunaan sintaks tersebut sebenarnya untuk menggungkinkan kita mendapatkan inputan langsung dari keyboard pada saat program sudah dijalankan nantinya. Penggunaannya terlihat jelas pada methode inputangka di pada class Kalkulator yaitu :
//Methode untuk input angka
   public int inputangka () {
      String angka;
      int a2 = 0;
      try {
         BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
         angka = buffer.readLine();
         a2 = Integer.parseInt(angka);
      }
      catch (IOException e) {

         System.err.println("Maaf, terjadi kesalahan berikut : " + e);
      }
      return a2;    
   }
    Pendeklarasian "import java.io.*;" di awal yang menyebabkan fungsi dari sintak di atas berjalan dengan baik sehingga penginputan dari keyboard bisa berjalan dengan baik. Setelah semua koding  telah dimasukan maka tekan f8 atau compile, setelah di compile maka langkah terakhir dengan execute atau tekan f5, jika sudah akan terlihat seperti dibawah ini

selamat mencoba :)

Selasa, 17 Maret 2015

Tugas 3 - UML(Unified Modeling Language)

Nama Matakuliah        : Pemrograman Berorientasi Objek
Nama                           : I Gusti Ngurah Yoga Pawitra
NIM                             : 1404505052 
Nama Dosen                : I Putu Agus Eka Pratama ST.,MT
Jurusan                        : Teknologi Informasi
Fakultas                       : Teknik
Universitas                  : Udayana



UML 

Unified Modelling Language (UML) adalah sebuah “bahasa” yg telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem.

Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam bahasa-bahasa berorientasi objek seperti C++, Java, C# atau VB.NET. Walaupun demikian, UML tetap dapat digunakan untuk modeling aplikasi prosedural dalam VB atau C.

Use Case Diagram

Bahasa UML juga bisa dipakai untuk menjelaskan diagram Use Case. Diagram use case merupakan pemodelan untuk menggambarkan kelakuan (behavior) sistem yang akan dibuat. Diagram use case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem yang akan dibuat. Diagram use case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem dan siapa saja yang berhak menggunakan fungsi-fungsi tersebut. Yang ditekankan pada diagram ini adalah "apa" yang diperbuat sistem, dan bukan "bagaimana". Sebuah use case merepresentasikan sebuah interaksi antara aktor (user atau sistem lainya) dengan sistem. Use case menjelaskan secara sederhana fungsi sistem dari sudut pandang user.

Berikut penjelasan bagian-bagian Use Case Diagram
Sistem

Menyatakan batasan sistem dalam relasi dengan actor-actor yang menggunakannya (di luar sistem) dan fitur-fitur yang harus disediakan (dalam sistem). Digambarkan dengan segi empat yang membatasi semua use case dalam sistem terhadap pihak mana sistem akan berinteraksi. Sistem disertai label yang menyebutkan nama dari sistem, tapi umumnya tidak digambarkan karena tidak terlalu memberi arti tambahan pada diagram.

Aktor

Aktor adalah segala hal diluar sistem yang akan menggunakan sistem tersebut
untuk melakukan sesuatu. Bisa merupakan manusia, sistem, atau device yang memiliki peranan dalam keberhasilan operasi dari sistem. Cara mudah untuk menemukan aktor adalah dengan bertanya hal-hal berikut:  SIAPA yang akan menggunakan sistem?  APAKAH sistem tersebut akan memberikan NILAI bagi aktor?
Use Case

Mengidentifikasi fitur kunci dari sistem. Tanpa fitur ini, sistem tidak akan memenuhi permintaan user/actor. Setiap use case mengekspresikan goal dari sistem yang harus dicapai. Diberi nama sesuai dengan goal-nya dan digambarkan dengan elips dengan nama di dalamnya. Fokus tetap pada goal bukan bagaimana mengimplementasikannya walaupun use case berimplikasi pada prosesnya nanti. Setiap use case biasanya memiliki trigger/pemicu yang menyebabkan use case memulai (misalnya,Pasien mendaftar dan membuat janji baru atau meminta untuk membatalkan atau mengubah janji yang sudah ada ).ada 2 triger pertama triger eksternal, seperti pelanggan memesan atau alarm kebakaran berbunyi, kedua triger temporal, seperti tanggal pengembalian buku terlewati di perpustakaan atau keterlambatan bayar sewa.

Assosiation

Mengidentifikasikan interaksi antara setiap actor tertentu dengan setiap use case tertentu. Digambarkan sebagai garis antara actor terhadap use case yang bersangkutan. Asosiasi bisa berarah (garis dengan anak panah) jika komunikasi satu arah, namun umumnya terjadi kedua arah (tanpa anak panah) karena selalu diperlukan demikian.

Dependensi <<include>>
Mengidentifikasi hubungan antar dua use case di mana yang satu memanggil yang lain.
Jika pada beberapa use case terdapat bagian yang memiliki aktivitas yang sama maka bagian aktivitas tersebut biasanya dijadikan use case tersendiri dengan relasi dependensi setiap use case semula ke use case yang baru ini sehingga memudahkan pemeliharaan.
Digambarkan dengan garis putus-putus bermata panah dengan notasi <<include>> pada garis.
Arah mata panah sesuai dengan arah pemanggilan.

Dependensi <<extend>>
Jika pemanggilan memerlukan adanya kondisi tertentu maka berlaku dependensi <<extend>>.
Note: konsep “extend” ini berbeda dengan “extend” dalam Java!
Digambarkan serupa dengan dependensi <<include>> kecuali arah panah berlawanan.
Generalization

Mendefinisikan relasi antara dua actor atau dua use case yang mana salah satunya meng-inherit dan menambahkan atau override sifat dari yang lainnya. Penggambaran menggunakan garis bermata panah kosong dari yang meng-inherit mengarah ke yang di-inherit.


Sebagai studi kasus, kita akan membahaas tentang mekanisme melihat nilai pada SIMAK ( Sistem Informasi Akademik ) pada suatu fakultas. Dalam hal ini kita  menggunakan Use Case Diagram. Berikut adalah contohnya


Pada gambar, terdapat 8 aktifitas , diantara lain adalah login, pengisian daftar nilai, pengeditan daftar nilai, penghapusan daftar nilai, melihat daftar nilai matkul, cetak indeks prestasi, cetak indeks prestasi kumulatif, pendaftaran. Selain itu usecase ini memiliki 3 aktor yang berperan, yaitu mahasiswa, dosen dan administrator.

1. Aktifitas mendaftarkan mahasiswa dan dosen dilakukan oleh administrator yang mengambil data         dari database universitas.
2. Login dapat dilakukan oleh mahasiswa, dosen dan administrator.
3. Aktifitas memanipulasi data nilai seperti menginput, pengeditan, dan penghapusan hanya dapat           dilakukan oleh aktor dosen dan aktor administrator.
4. Melihat daftar nilai mata kuliah dapat dilakukan oleh semua aktor.

5. Cetak IP dan IPK dapat dilakukan oleh mahasiswa dan administrator.UML


Tugas 3 - Program Pewarisan Lanjutan

Nama Matakuliah        : Pemrograman Berorientasi Objek
Nama                           : I Gusti Ngurah Yoga Pawitra
NIM                             : 1404505052 
Nama Dosen                : I Putu Agus Eka Pratama ST.,MT
Jurusan                        : Teknologi Informasi
Fakultas                       : Teknik
Universitas                  : Udayana


INHERITANCE

Pada postingan kali ini saya akan membahas tentang Inheritance. Inheritance adalah Salah satu konsep dasar dari pemrograman berbasis objek pada java. Pada dasarnya, kita melakukan inheritance(pewarisan) untuk membuat suatu class baru(class turunan/subclass) yang masih memiliki sifat atau spesifikasi dari superclass. Di dalam Java untuk mendeklarasikan suatu class sebagai subclass dilakukan dengan cara menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya. Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.
Beberapa aturan tentang pewarisan(inheritance) yang perlu diperhatikan :
1. Java hanya memperkenankan adanya single inheritance. Konsep single inheritance hanya memperbolehkan suatu sublass mempunyai satu parent class. Dengan konsep single inheritance ini, masalah pewarisan akan dapat diamati dengan mudah.

2. Subclass juga merupakan class biasa, maka kita tetap dapat melakukan pewarisan pada subclass ini. Misal : class B merupakan subclass dari class A, kita dapat membuat class baru yang diturunkan dari class B sehingga class baru tersebut akan memiliki apa yang dimiliki oleh class A dan class B.

3. Suatu parent class dapat tidak mewariskan sebagian member-nya kepada subclass-nya. Sejauh mana suatu member dapat diwariskan ke class lain, ataupun suatu member dapat diakses dari class lain, sangat berhubungan dengan access control (kontrol pengaksesan).
Sekarang kita coba membuat program pewarisan pada java, berikut langkah-langkahnya :
Pertama kita buat project baru seperti biasa dan ingat diberi nama
Kemudian kita membuat dua kelas induk utama yaitu "Mamalia" dan "Reptil".
class Mamalia {
 int ID;
 String Nama;
 String Keterangan;

 public Mamalia (int id, String nama, String keterangan) {
  ID = id;
  Nama = nama;
  Keterangan = keterangan; 
 }

public void Rincian() {
  System.out.println("ID = " +ID);
  System.out.println("Nama Hewan = " + Nama);
  System.out.println("Keterangan = " + Keterangan);
 }
}

class Reptil {
 int ID;
 String Nama;
 String Keterangan;

public Reptil (int id, String nama, String keterangan) {
  ID = id;
  Nama = nama;
  Keterangan = keterangan; 
 }

public void Rincian() {
  System.out.println("ID = " +ID);
  System.out.println("Nama Hewan = " + Nama);
  System.out.println("Keterangan = " + Keterangan);
 }
}

Setelah membuat Superclass atau kelas Induk, selanjutnya kita akan membuat kelas Anak atau Subclas. Kelas Mamalia memiliki Anak Kelas yaitu Sapi, Kucing, dan Anjing dimana Anjing juga memiliki Anak Kelas yang terdiri dari Alaskan Malamute, Akita, dan Beagle. Sedangkan Kelas Reptil memiliki Anak Kelas yaitu Buaya, Cicak, dan Ular dimana Ular juga memiliki Anak Kelas yaitu Kobra dan Python. Berikut adalah skrip masing-masing kelas.

1. Kelas Sapi
 //kelas Sapi
//Turunan dari kelas Mamalia, menggunakan "extends" dan "super"
class Sapi extends Mamalia {
 String Jenis;

public Sapi (int mid, String nama, String keterangan, String jenis) {
  super (mid, nama, keterangan);
  Jenis = jenis;
 }

public void Rincian() {
  System.out.println("ID = " + ID);
  System.out.println("Nama Hewan = " + Nama);
  System.out.println("Keterangan = " + Keterangan);
  System.out.println("Jenis = " + Jenis);
 } 
}

2. Kelas Kucing
//kelas Kucing
//Turunan dari kelas Mamalia, menggunakan "extends" dan "super"
class Kucing extends Mamalia {
 String Jenis;

public Kucing (int mid, String nama, String keterangan, String jenis) {
  super (mid, nama, keterangan);
  Jenis = jenis;
 }

 public void Rincian() {
  System.out.println("ID = " + ID);
  System.out.println("Nama Hewan = " + Nama);
  System.out.println("Keterangan = " + Keterangan);
  System.out.println("Jenis = " + Jenis);
 } 
}

3. Kelas Anjing
//kelas Anjing
//Turunan dari kelas Mamalia, menggunakan "extends" dan "super"
class Anjing extends Mamalia {
 String Jenis;

 public Anjing (int mid, String nama, String keterangan, String jenis) {
  super (mid, nama, keterangan);
  Jenis = jenis;
 }

public void Rincian() {
  System.out.println("ID = " + ID);
  System.out.println("Nama Hewan = " + Nama);
  System.out.println("Keterangan = " + Keterangan);
  System.out.println("Jenis = " + Jenis);
 } 
}

4. Kelas Alaskan Malamute
//kelas AlaskanMalamute
//Turunan dari kelas Anjing, menggunakan "extends" dan "super"
class AlaskanMalamute extends Anjing {


 public AlaskanMalamute (int aid, String nama, String keterangan, String jenis) {
  super (aid, nama, keterangan, jenis);
 }

public void Rincian() {
  System.out.println("ID = " + ID);
  System.out.println("Nama Hewan = " + Nama);
  System.out.println("Keterangan = " + Keterangan);
  System.out.println("Jenis = " + Jenis);
 } 

5. Kelas Akita
//kelas Akita
//Turunan dari kelas Anjing, menggunakan "extends" dan "super"
class Akita extends Anjing {


 public Akita (int aid, String nama, String keterangan, String jenis) {
  super (aid, nama, keterangan, jenis);
 }


 public void Rincian() {
  System.out.println("ID = " + ID);
  System.out.println("Nama Hewan = " + Nama);
  System.out.println("Keterangan = " + Keterangan);
  System.out.println("Jenis = " + Jenis);
 } 
}

6. Kelas Beagle
//kelas Beagle
//Turunan dari kelas Anjing, menggunakan "extends" dan "super"
class Beagle extends Anjing {


 public Beagle (int aid, String nama, String keterangan, String jenis) {
  super (aid, nama, keterangan, jenis);
 }


 public void Rincian() {
  System.out.println("ID = " + ID);
  System.out.println("Nama Hewan = " + Nama);
  System.out.println("Keterangan = " + Keterangan);
  System.out.println("Jenis = " + Jenis);
 } 
}

7. Kelas Reptil
class Reptil {
 int ID;
 String Nama;
 String Keterangan;


 public Reptil (int id, String nama, String keterangan) {
  ID = id;
  Nama = nama;
  Keterangan = keterangan; 
 }

public void Rincian() {
  System.out.println("ID = " +ID);
  System.out.println("Nama Hewan = " + Nama);
  System.out.println("Keterangan = " + Keterangan);
 }
}

8. Kelas Buaya
//kelas Buaya
//Turunan dari kelas Reptil, menggunakan "extends" dan "super"
class Buaya extends Reptil {
 String Jenis;

public Buaya (int rid, String nama, String keterangan, String jenis) {
  super (rid, nama, keterangan);
  Jenis = jenis;
 }


 public void Rincian() {
  System.out.println("ID = " + ID);
  System.out.println("Nama Hewan = " + Nama);
  System.out.println("Keterangan = " + Keterangan);
  System.out.println("Jenis = " + Jenis);
 } 
}

9. Kelas Cicak
//kelas Cicak
//Turunan dari kelas Reptil, menggunakan "extends" dan "super"
class Cicak extends Reptil {
 String Jenis;

public Cicak (int rid, String nama, String keterangan, String jenis) {
  super (rid, nama, keterangan);
  Jenis = jenis;
 }

public void Rincian() {
  System.out.println("ID = " + ID);
  System.out.println("Nama Hewan = " + Nama);
  System.out.println("Keterangan = " + Keterangan);
  System.out.println("Jenis = " + Jenis);
 } 
}

10. Kelas Ular
//kelas Ular
//Turunan dari kelas Reptil, menggunakan "extends" dan "super"
class Ular extends Reptil {
 String Jenis;

public Ular (int rid, String nama, String keterangan, String jenis) {
  super (rid, nama, keterangan);
  Jenis = jenis;
 }

public void Rincian() {
  System.out.println("ID = " + ID);
  System.out.println("Nama Hewan = " + Nama);
  System.out.println("Keterangan = " + Keterangan);
  System.out.println("Jenis = " + Jenis);
 } 
}

11. Kelas Kobra
  //kelas Kobra
//Turunan dari kelas Ular, menggunakan "extends" dan "super"
class Kobra extends Ular {


 public Kobra (int uid, String nama, String keterangan, String jenis) {
  super (uid, nama, keterangan, jenis);
 }


 public void Rincian() {
  System.out.println("ID = " + ID);
  System.out.println("Nama Hewan = " + Nama);
  System.out.println("Keterangan = " + Keterangan);
  System.out.println("Jenis = " + Jenis);
 } 
}

12. Kelas Python
//kelas Python
//Turunan dari kelas Ular, menggunakan "extends" dan "super"
class Python extends Ular {


 public Python (int uid, String nama, String keterangan, String jenis) {
  super (uid, nama, keterangan, jenis);
 }


 public void Rincian() {
  System.out.println("ID = " + ID);
  System.out.println("Nama Hewan = " + Nama);
  System.out.println("Keterangan = " + Keterangan);
  System.out.println("Jenis = " + Jenis);
 } 
}

Langkah selanjutnya yaitu membuat instansiasi kelas dan pemanggilan konstruktor pada kelas utama atau main class. Berikut skripnya.
//MAIN CLASS
public class JenisBinatang {
    public static void main(String[] args) {
       //instansiasi kelas
 //menggunakan "new"
  System.out.println("Berikut merupakan jenis-jenis hewan :");
  System.out.println("");
  Mamalia mamalia = new Mamalia(001, "Mamalia", "Merupakan Hewan menyusui");
  Sapi sapi = new Sapi(011, "Sapi", "Contoh hewan mamalia", "Pemakan Rumput");
  Kucing kucing = new Kucing(021, "Kucing", "Contoh hewan mamalia", "Pemakan Daging");
  Anjing anjing = new Anjing(031, "Anjing", "Contoh hewan mamalia", "Pemakan Daging");
  AlaskanMalamute alaskanmalamute = new AlaskanMalamute(131, "Anjing Alaskan Malamute", "Salah satu jenis anjing", "Pemakan Daging");
  Akita akita = new Akita(231, "Anjing Akita", "Salah satu jenis anjing", "Pemakan Daging");
  Beagle beagle = new Beagle(331, "Anjing Beagle", "Salah satu jenis anjing", "Pemakan Daging");
  Reptil reptil = new Reptil(002, "Reptil", "Merupakan Hewan berdarah dingin");
  Buaya buaya = new Buaya(012, "Buaya", "Contoh hewan reptil", "Pemakan Daging");
  Cicak cicak = new Cicak(022, "Cicak", "Contoh hewan reptil", "Pemakan Daging");
  Ular ular = new Ular(032, "Ular", "Contoh hewan reptil", "Pemakan Daging");
  Kobra kobra = new Kobra(132, "Ular Kobra", "Salah satu jenis ular", "Karnivora");
  Python python = new Python(232, "Ular Python", "Salah satu jenis ular", "Karnivora");
  mamalia.Rincian();
  System.out.println("");
  sapi.Rincian();
  System.out.println("");
  kucing.Rincian();
  System.out.println("");
  anjing.Rincian();
  System.out.println("");
  alaskanmalamute.Rincian();
  System.out.println("");
  akita.Rincian();
  System.out.println("");
  beagle.Rincian();
  System.out.println("");
  reptil.Rincian();
  System.out.println("");
  buaya.Rincian();
  System.out.println("");
  cicak.Rincian();
  System.out.println("");
  ular.Rincian();
  System.out.println("");
  kobra.Rincian();
  System.out.println("");
  python.Rincian();
  System.out.println("");
    }
   
}

Lalu compile dan run program tersebut, berikut contoh screenshootnya

selamat mencoba :)