Jumat, 04 Januari 2019

MODUL 7 "ABSTRACT CLASS"

LAPORAN PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK
MODUL VII
“ABSTRACT CLASS”
Dosen : Iwan Lesmana, M.Kom


Disusun Oleh :

Regi Permana Jaya
20160910112


SI 2016 C

PRODI SISTEM INFORMASI
FAKULTAS ILMU KOMPUTER
UNIVERSITAS KUNINGAN



KATA PENGANTAR
Puji syukur kehadirat Allah SWT yang memberikan bimbingan dan pertolongannya sehingga dalam penulisan Laporan Praktikum Pemograman Berorientasi Objek ini bisa berjalan dengan lancar. Penulisan Laporan Praktikum Pemograman Berorientasi Objek Ini dimaksudkan penulis khusunya saya sendiri untuk memenuhi tugas mata kuliah Pemograman Berorientasi Objek. Penulisan Laporan Praktikum Pemograman Berorientasi Objek ini dimaksudkan sebagai penambah wawasan pembaca khususnya tentang Pemograman Berorientasi Objek tentang Abstract Class. Di sisi lain, penulis mengajak kepada para pembaca agar dapat memahami dan mendalami masalah topik di atas, sekaligus menerapkan hasil Laporan Pemograman Berorientasi Objek.
Demikianlah sebagai pengantar, mudah-mudahan dengan laporan ini bisa diterima dengan baik. Dan semoga Allah senantiasa melimpahkan rahmat-Nya dalam setiap aktivitas yang kita kerjakan. Amin
                                                      Kuningan , 17  Desember 2018
                    Penyusun,
                              Regi Permana Jaya


DAFTAR ISI
KATA PENGANTAR......................................................................................1
DAFTAR ISI....................................................................................................2
BAB I DASAR TEORI
A. Dasar Teori..................................................................................................3
BAB II PEMBAHASAN
A. Praktikum....................................................................................................6
B. Latihan/Post Test.......................................................................................22
C. Tugas Individu...........................................................................................28

BAB I
 DASAR TEORI
  1. DASAR TEORI
Abstract class adalah kelas yang terletak pada posisi tertinggi pada hierarki kelas. Kelas ini digunakan sebagai basis bagi penurunan kelas lainnya sehingga abstract class tidak dapat diinstansiasi secara lagsung menjadi object. Suatu abstact class bisa mengandung method kongkrit dan/atau method abstract. Abstract method merupakan suatu method yang tidak mempunyai badan method. Hanya berupa nama method dan parameter inputan method. Ketika suatu abstract class diturunkan/ diextends, maka subclass harus mengimplementasikan semua method abstract pada parent/ base class. Jika tidak mengimplementasikan semua method abstract maka subclass harus dideklarasikan sebagai abstract class.
Cara untuk membuat sebuah class abstract adalah :
Contoh :
Java memiliki aturan-aturan dalam penggunaan method abstrak dan class abstrak sebagai berikut :
1.  Class yang di dalamnya terdapat abstract method harus dideklarasikan sebagai abstract class.
2.  Abstract class tidak dapat diinstansi, tetapi harus di turunkan.
3. Abstract class tidak dapat diinstansi (menjadi objek dari class abstract), tetapi kita dapat mendeklarasikan suatu variabel yang bertipe abstract class dan membuat instansi dari variable tersebutyang bertipe class turunan dari abstract class tersebut (teknik polymorphism).
4. Sebuah class dapat dideklarasikan sebagai abstract class meskipun class tersebut tidak memiliki abstract method.
5. Abstract method tidak boleh mempunyai body method dan demikian juga sebaliknya bahwa method yang tidak ditulis body methodnya maka harus dideklarasikan sebagai abstract method.


BAB II
PEMBAHASAN
  1. PRAKTIKUM
Membuat Project Di Netbeans
  1. Yang pertama yaitu membuat Project Baru di Netbeans dengan caara klik File -> New Project - > Choose Project (Java Aplication).

2. Kemudian klik Next dan isikan Project Name nya : Modul7PBO dan Project Locationnya berada di D:\PBOLISNA.
3. Setelah itu yaitu membuat file Empity Java file baru dengan cara klik kanan Source Package -> New -> Other -> Empity Java File. Dan klik Next.

  • PRAKTIKUM 1
  1. Buat File Empity Java File Baru. Setelah itu Kemudian berinama class namenyaPulau.java
  • Source Code Pulau.java
    abstract class Pulau {
    static final String NEGARA = "Indonesia";
    public abstract String nama();
    public String ambilNegara(){
    return NEGARA;
    }
}
class Jawa extends Pulau{
    String namap;
    public String nama(){
    namap = "Pulau Jawa";
    return namap;  
    }
}
class Kalimantan extends Pulau{
    String namap;
    public String nama(){
    namap = "Pulau Kalimantan";
    return namap;  
    }
}
class JawaBarat extends Jawa{
    void namaProv(){
        System.out.println("Ini pulau berada di "+ ambilNegara());
        System.out.println("Ini "+ nama());
        System.out.println("Ini Provinsi Jawa Barat");
        System.out.println("Jumlah Penduduk : 232342 Jiwa");
    }
}
class KalimantanTimur extends Kalimantan{
    void namaProv(){
        System.out.println("Ini pulau berada di "+ ambilNegara());
        System.out.println("Ini "+ nama());
        System.out.println("Ini Provinsi Sumatera");
        System.out.println("Jumlah Penduduk : 27364 Jiwa");
    }
}
class Utama{
    public static void main(String[] args){
        JawaBarat JB = new JawaBarat();
        KalimantanTimur KT = new KalimantanTimur();
        JB.namaProv();
        System.out.println("=================================");
        System.out.println("");
        KT.namaProv();
    }
}

  • Hasil running  :

  • PRAKTIKUM 2
  1. Buat File Empity Java File Baru. Setelah itu Kemudian berinama class namenyaMakhlukHidup.java
  • Source Code MakhlukHidup.java
public abstract class MakhlukHidup {
public abstract void berdiri();
    public void oksigen(){
        System.out.println("- butuh makanan");
        System.out.println("- butuh oksigen");
        System.out.println("- butuh air");
    }
}

2. Buat File Empity Java File baru, class namenya Manusia.java
  • Source Code Manusia.java
public class Manusia extends MakhlukHidup {
    private String DuaKaki;
    public Manusia(String DuaKaki){
        this.DuaKaki=DuaKaki;
    }
    public void berdiri(){
        System.out.println("Manusia berdiri dengan "+DuaKaki);
    }
}

3. Buat File Empity Java File baru, class namenya Hewan.java
  • Source Code Hewan.java
public class Hewan extends MakhlukHidup {
    private String EmpatKaki, DuaKaki;
    public Hewan(String EmpatKaki, String DuaKaki){
        this.EmpatKaki = EmpatKaki;
        this.DuaKaki = DuaKaki;
    }
    public void berdiri(){
        System.out.println("Hewan berdiri dengan "+EmpatKaki+ " dan berdiri dengan "+DuaKaki);
    }
}

4. Buat File Empity Java File baru, class namenya Tumbuhan.java
  • Source Code Tumbuhan.java
public class Tumbuhan extends MakhlukHidup {
    private String Akar;
    public Tumbuhan (String Akar){
        this.Akar = Akar;
    }
    public void berdiri(){
        System.out.println("Tumbuhan berdiri dengan "+Akar);
    }
}

5. Buat File Empity Java File baru, class namenya MainMakhlukHidup.java
  • Source Code MainMakhlukHidup.java
public class MainMakhlukHidup {
    public void cekMakhlukHidup(MakhlukHidup mHidup){
        mHidup.berdiri();
        mHidup.oksigen();
    }
    public static void main(String[] args){
        MainMakhlukHidup MH = new MainMakhlukHidup();
        MH.cekMakhlukHidup(new Manusia("Dua Kaki"));
        System.out.println("============================================");
        MH.cekMakhlukHidup(new Hewan ("Empat Kaki", "Dua Kaki"));
        System.out.println("============================================");
        MH.cekMakhlukHidup(new Tumbuhan ("Akar"));
    }
}

  • Hasil running  :

  • PRAKTIKUM 3
  1. Buat File Empity Java File Baru. Setelah itu Kemudian berinama class namenyaBangunDatar.java
  • Source Code BangunDatar.java
abstract class BangunDatar {
    abstract double luas();
    abstract double keliling();
    void tampilLuas(double l)
    {
        System.out.println("Luasnya Sebesar " + l);
    }
    static void staticMethod()
    {
        System.out.println("Static Method dapat dipanggil");
    }
}

2. Buat File Empity Java File baru, class namenya Lingkaran.java
  • Source Code Lingkaran.java
class Lingkaran extends BangunDatar {
    double jari;
    Lingkaran (double jari){
        this.jari = jari;
    }
    double luas()
    {
        return Math.PI * jari * jari;
    }
    double keliling()
    {
        return Math.PI * 2.0 * jari;
    }
}

3. Buat File Empity Java File baru, class namenya Test.java
  • Source Code Test.java
public class Test {
    public static void main(String[] args)
    {
        Lingkaran li;
        li = new Lingkaran(7.0);
        li.tampilLuas(li.luas());
        BangunDatar.staticMethod();
    }
}
  • Hasil running  :

B. LATIHAN / POST TEST

Buatlah Program Atribut Class dengan case studi yang berbeda dari praktikum diatas.
  1. Buat File Empity Java File baru, class namenya Buah.java
  • Source Code Buah.java
abstract class buah{
    public abstract String nama();
}
class jeruk extends buah{
    String namap;
    public String nama(){
        namap = "Jeruk";
        return namap;
    }
}
class anggur extends buah{
    String namap;
    public String nama(){
        namap = "Anggur";
        return namap;
    }
}
class jeruk1 extends jeruk{
    void buah(){
        System.out.println("Ini buah "+nama());
        System.out.println("Memiliki Batang Tidak Berkambium");
        System.out.println("Memiliki Akar Serabut");
        System.out.println("Memiliki Daun Bersirip");
        System.out.println("Memiliki Biji Monokotil");
    }
}
 class anggur1 extends anggur{
    void buah(){
        System.out.println("Ini buah "+nama());
        System.out.println("Memiliki Batang Tidak Berkambium");
        System.out.println("Memiliki Akar Serabut");
        System.out.println("Memiliki Daun Menjari");
        System.out.println("Memiliki Biji Dikotil");
    }
 }
 class testbuah{
     public static void main(String [] args){
         jeruk1 j = new jeruk1();
         anggur1 a = new anggur1();
         j.buah();
         System.out.println("=================================");
         System.out.println("");
         a.buah();
     }
 }

  • Hasil running  :


C. TUGAS INDIVIDU

  1. Apa perbedaan Abstract dengan Interface, Jelaskan.!

    Jawab :
Abstrak class
Abstract Class merupakan Class yang khusus dibuat untuk keperluan inheritance. Tujuan dari pembuatan abstract class ini ialah untuk membuat definisi umum bagi class-class yang akan menjadi turunan darinya.
Abstract Class tidak bisa diinstansiasi. Abstract method tidak mempunyai implementasi, sehingga penulisannya dilakukan hanya dengan mengikutkan semikolon, bukan blok method {} seperti biasanya. Abstract method ini bisa digunakan oleh Class turunannya dengan melakukan override.
Abstract class hanya bisa digunakan sebagai super class, tapi juga bisa diturunkan dari class abstract lainnya. Untuk mendeklarasikan sebuah abstract class digunakan keyword abstract, [abstract] class [class_name] Sebuah abstract class pada dasarnya tidak hauh beda dengan class lainnya, yakni juga berisi method yang menggambarkan carakteristik dari kelas abstract tersebut, bedanya yakni sebuah abstract class bisa berisi method tanpa diimplementasikan artinya sebuah method tanpa body, methid seperti ini disebut method abstract.
Interface
Interface adalah jenis khusus dari blok yang hanya berisi method signature (atau constant).  Interface mendefinisikan sebuah(signature) dari sebuah kumpulan method tanpa tubuh. Interface mendefinisikan sebuah cara standar dan umum dalam menetapkan sifat-sifat dari class-class. Mereka menyediakan class-class, tanpa memperhatikan lokasinya dalam hirarki class, untuk mengimplementasikan sifat-sifat yang umum. Dengan catatan bahwa interface-interface juga menunjukkan polimorfisme, dikarenakan program dapat memanggil method interface dan versi yang tepat dari method yang akan dieksekusi tergantung dari tipe object yang melewati pemanggil method interface.
Abstract Class
Interface
Bisa berisi abstract dan non-abstract method.
Hanya boleh berisi abstract method.
Kita harus menuliskan sendiri modifiernya.
Kita tidak perlu susah2 menulis public abstract di depan nama method. Karena secara implisit, modifier untuk method di interface adalah public dan abstract.

Bisa mendeklarasikan constant dan instance variable
Hanya bisa mendeklarasikan constant.  Secara implisit variable yang dideklarasikan di interface bersifatpublic, static dan final.
Method boleh bersifat static.
Method tidak boleh bersifat static
Method boleh bersifat final.
Method tidak boleh bersifat final.
Suatu abstact class hanya bisa meng-extend satu abstract class lainnya.
Suatu interface bisa meng-extend  satu atau lebih interface lainnya.

Suatu abstract class hanya bisa meng-extend satu abstract class dan meng-implement beberapa interface.
Suatu interface hanya bisa meng-extend interface lainnya.  Dan tidak bisa meng-implement class atau interface lainnya.




Share:

0 komentar:

Posting Komentar

Recent in Sports

Instagram

About Sure Mag

Sponsor

Comments

Facebook

Latest Posts

Music

Sample Text

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Contact Us

Nama

Email *

Pesan *

Powered By Blogger

Post Top Ad

Subscribe Box

Flickr Gallery

Social Media

Blogroll

About

Need our help to upload or customize this blogger template? Contact me with details about the theme customization you need.
Diberdayakan oleh Blogger.

Header Ads

Subscribe

Blogroll

Recent Posts

Ordered List

  1. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
  2. Aliquam tincidunt mauris eu risus.
  3. Vestibulum auctor dapibus neque.

Definition List

Definition list
Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet
Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Support

Need our help to upload or customize this blogger template? Contact me with details about the theme customization you need.

Visitor

Cari Blog Ini

Archive

Comment

Home Ads

Random Posts

Videos

Technology

Sports

Random Posts

Recent Posts

Recent in Sports

Search Blog

Titulo

Subscribe for New Post Notifications

Followers

Join with us

Featured

Advertisement

Recent

Post Top Ad

Your Ad Spot

Pages

Pages

Pages - Menu

Pages - Menu

Pages

LATEST POSTS

Labels

Blogger templates