Top Banner

of 51

Modul Prak PBO

Oct 19, 2015

Download

Documents

Ini adalah modul praktikum PBO (Pemrograman Berorietnasi Objek) di UIN Malang
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 5/28/2018 Modul Prak PBO

    1/51

    1

    TI UIN

    MALANG 2012

    MODULPRAKTIKUM

    PEMROGRMANBERORIENTASIOBJEK

    JURUSAN TEKNIK INFORMATIKA

    Disusunoleh

    Agung Teguh Wibowo Almais, S.Kom

    Modulpraktikuminidigunakanjugasebagaikartupraktikum

    Data Praktikan

    Foto

    berwarna3x4

    ModulPraktikumPemrograman BerorientasiObjek Agung Teguh WA

    Nama

    NIM

    Dosen Agung Teguh W.A, S.Kom

    Assisten

    Pertemuan(ara!

    Assisten"1 2 3 4 5 6 7 8

    Nilai

    Akhir

    Nilai(per-modul

    praktikum)

  • 5/28/2018 Modul Prak PBO

    2/51

    2

    TujuanPraktikum

    Tujuan praktikum ini adalah mengenalkan mahasiswa pada pemrograman berorientasi

    objek. Setelahmempelajari pemrograman berorientasi objek diharapkanmahasiswa dapat

    memahamikonseppemrogramanberorientasiobjeksertamenerapkannya.

    TataTertibPraktikum

    Praktikum dilaksanakan sebagai salah satu point dalam penilaian nilai akhir sehingga

    dituntut kedisiplinan didalam pelaksanaan praktikum, sehingga dalam praktikum

    pemrogramaninidibuatbeberapaaturansebagaiberikut:

    1. Praktikanwajibdatangtepatwaktu

    2. 10menitsebelumpraktikumakandiadakanevaluasiolehassisten

    3. Praktikanwajibmembawakartuabsensipraktikum

    4. Penilaian yang dilakukan dan diisikan pada modul ini adalah penilaian saat

    berlangsungnyapraktikum,denganskala1-10.

    5. Seluruh mahasiswa peserta praktikum wajib membuat laporan praktikum, baik

    yangmengambilmatakuliahbarumaupunmengulang

    6. Tidak diadakan inhall bagi mahasiswa, kecuali dengan alasan-alasanmendesak

    yangdapatditerimadenganpersetujuandosenpengampu.

    7. Ketertiban,kesopanandankeaktifansaatmengikutipraktikumdijadikansalahsatu

    pointpenilaianolehassisten.

    8. Tunjukanjalannyaprogramandapadaassisten.

    9. Formatlaporanadalahsebagaiberikut:

    a. Judullaporan(NamadanNIM,TanggalPraktikum)

    b. NamaPraktikum

    c. Sourcecodeyangtelahdiperbaiki

    d. Jawabandaripertanyaanyangterdapatdalammodul

    e. LaporanditulistanganpadakertasukuranA4.

    10.Laporan dibuat berdasarkan pengisianmodul praktikum yang telah ditandatangani

    assistendanpraktikan.

    ModulPraktikumPemrograman BerorientasiObjek Agung Teguh WA

  • 5/28/2018 Modul Prak PBO

    3/51

    3

    Perkakasdankompiler

    Sebagai penghargaan terhadap hak kekayan intelektual dalam hal ini penggunaan

    perangkat lunak, maka seluruh tools (kakas) dan kompiler dalam praktikum

    menggunakakanperangkatlunakbebasberlisensikanGNU.

    PraktikumakanmenggunakanEclips.

    ModulPraktikumPemrograman BerorientasiObjek Agung Teguh WA

  • 5/28/2018 Modul Prak PBO

    4/51

    4

    MODUL1.

    KELASDANOBJEK

    A. Tujuan

    Praktikan diharapkan dapat:

    1. Membuat kelas dengan beberapa variabel/atribut dan metodh

    2. Menginstantiasi kelas menjadi objek

    B. TeoriSingkat

    Dalam paradigma pemrograman berorientasi objek dikenal kelas dan objek. Kelas

    merupakan blue print dari objekobjek !ang akan dibuat. "nalogi kelas dan objek seperti ran#angan

    model rumah dan pembangunan rumahrumah$ adapun proses pembuatan objek dari kelas dikenal

    dengan instantiasi.

    %ambar 1. Pembuatan objek dari kelas dengan instantiasi

    &ebagai #ontoh kita ambil kelas manusia. Kelas manusia mempun!ai atribut : nama. &elain

    itu kelas manusia juga mempun!ai metodh: tampilkan'ama$ kerja$ makan. Kasus diatas

    diimplementasikan dalam bahasa (ava sebagai berikut

    /*Disipan!ala"ileanusia.ja#a*/public class manusia{public String nama;

    public manusia(String n){this.nama = n;}public String tampilkanNama(){return nama;}public void makan(){System.out.println("Nyam... nyam... nyam...");}public void kerja(){ystem.out.println("Kerja...kerjaaa...");}

    }

    "dapun kode untuk menginstantiasi kelas manusia menjadi objek "ndi !ang

    mengimplementasikan metodh: tampilkan'ama dan makan adalah sebagai berikut.

  • 5/28/2018 Modul Prak PBO

    5/51

    )

    /*Disipan!ala"ilean!i.ja#a*/class andi{public static void main(String arg[]){manusia andi= new manusia("Andi");System.out.println("Nama= "+ andi.tampilkanNama());andi.makan();}

    }

    *asil eksekusi terhadap #lass andi adalah sebagai berikut:

    Naa$An!i

    N%a...n%a...n%a...

    Meto!& 'inal

    Metodh +inal adalah metodh !ang tidak bisa dioverride oleh sub#lassn!a. Pende+inisian metodh

    +inal dengan #ara menambahkan ke!,ord +inal didepan de+inisi metodh tersebut$ seperti pada

    #ontoh berikut

    Public final void tidur();

    System.out.println(Zzz..Zzzz..Zzzzzzz);

    (. )raktiku

    1. -uatlah 3 objek untuk menginstantiasi kelas mahasis,a dengan atribut nama dan npm "nda

    sendiri dan 2 teman "nda dan mengimplementasikan beberapa metodh !ang telah "nda

    de+inisikan dalam kelas mahasis,a.

    2. -uatlah kelas mahasis,a dengan atribut/variabel nama dan npm dan mempun!ai metodh:

    tampilkan'ama$ tampilkan'pm$ belajar$ olahaga$ makan$ minum.

    NB * Kompile +ile kelas mahasis,a dan objekobjek !ang telah "nda buat$ kemudian jalankan objek

    objek !ang telah "nda buat 0

  • 5/28/2018 Modul Prak PBO

    6/51

    LAPORAN (CLASS&OBJECT)

    Membuatobjekdarisuatuclass

    Objek pada suatu class dapat dibuat dengan melakukan pengisian objek baru dari

    konstruktorkeobjekyangbarudibuat.

    ClassdanObjeksederhana

    1.Buatlahclassorang danclassmaindengancodesebagaiberikut:

    class Orang {

    private int tahunUmur = 32;

    public void hitungUmur(){int hariUmur = tahunUmur * 365;

    long detikUmur = tahunUmur * 365 * 24L * 60 * 60;

    System.out.println("umur anda adalah: "+hariUmur+

    "hari");

    System.out.println("umur anda adalah: "+detikUmur+

    "detik");

    }

    }

    class main {

    public static void main(String[] args) {

    Orang o=new Orang();Orang objOrang=new Orang();

    objOrang.hitungumur();

    o.hitungUmur();

    }

    }

    a. SebutkannamaClassdanstatedanbehavioryangadapadaclassdiatas,sertatermasuk

    behaviourjenisapa?(fungsi/prosedur)

    Namaclass:

    State:

    Behavior:

    b.Berapaobjekyangterbentukdaripengujianprogramdiatas?sebutkan

  • 5/28/2018 Modul Prak PBO

    7/51

    c.Bagaimanacaramembuatobjekdarisuatuclass?

    d.Jalankanprogramdantuliskanluaran(outputdariprogram)

    2.Buatlahclassbujursangkar,classpersegidanclassujidengancodesebagai

    berikut:

    class bujurSangkar{int hitungLuas(int sisi){

    int luas = sisi * sisi;

    return(luas);

    }

    int hitungKeliling(int sisi){

    int keliling = 4 * luas;

    return(luas);

    }

    }

    class Persegi{

    int hitungLuas(int panjang,int lebar){

    int luas = panjang * lebar;

    return(luas);

    }

    int hitungKeliling(int panjang,int lebar){

    int keliling = 2*(panjang + lebar);

    return(keliling);

    }

    }

    a. Sebutkanstatedanbehavioryangadapadaclassbujursangkar diatas,serta

    termasukbehaviourjenisapa?(fungsi/prosedur)

    State:

    Behavior:

  • 5/28/2018 Modul Prak PBO

    8/51

    b. Sebutkanstatedanbehavioryangadapadaclasspersegidiatas,sertatermasuk

    behaviourjenisapa?(fungsi/prosedur)

    State:

    Behavior:

    c. Buatlahclassujisebagaiberikut:

    class Uji{

    private int x;public static void main(String[] args) {

    bujursangkar bujur=new bujursangkar();

    x=bujur.hitungLuas(4);

    System.out.println(luas bujur sangkar+x);

    x=bujur.hitungKeliling(5);

    System.out.println(keliling bujur sangkar+x);

    Persegi persegipanjang=new persegipanjang();

    x= persegipanjang.hitungLuas(6,4);

    System.out.println(Luas persegi+x);

    x= persegipanjang.hitungKeliling(6,4);

    System.out.println(Keliling persegi+x);

    }}

    d.Berapaobjekyangterbentukdaripengujianprogramdiatas?sebutkan

    e.Bagaimanacaramembuatobjekdariclasspadakodediatas?

  • 5/28/2018 Modul Prak PBO

    9/51

    f.Tuliskanhasilluaran(output)dariprogramdiatas?

    Final

    3.BuatlahclassfinalWord,danclassujidengancodesebagaiberikut:

    public class finalWord {

    final double phi= 3.14;

    double kelilingLingkaran(double jari){

    double keliling;

    keliling=2*phi*jari;

    return keliling;

    }

    double luasLingkaran(double jari){

    double luas;

    luas=phi*jari*jari;

    return luas;

    }

    }

    public class uji {

    public static void main(String[] args) {

    finalWord objFinal=new finalWord();

    System.out.println("Keliling="+objFinal.kelilingLingkaran(2));System.out.println("Luas ="+objFinal.luasLingkaran(3));

    }}

    Telahdiperiksa Tanggal:ModulClassdanObjeksederhana

    Dengan ini praktikan telahmenyetujui danmenyatakan bahwa aplikasi telah berjalan serta selesainyapengisianjawabandaritiappertanyaanyangada

    Assisten Praktikan Nilai

  • 5/28/2018 Modul Prak PBO

    10/51

    15

    a.Tuliskanhasilluaran(output)dariprogramdiatas

    b. Sebutkanstatedanbehavioryangadapadaclasspersegidiatas,sertatermasuk

    behaviourjenisapa?(fungsi/prosedur)

    State:

    Behavior:

    c.Masukankodeberikutpadaclassujisetelahpembentukanobjek

    objFinal.phi=3.17;

    Apayangterjadiketikadikompilasi:

    Fungsispecifierfinaladalah:

    Telahdiperiksa Tanggal: ModulFinalDengan ini praktikan telahmenyetujui danmenyatakan bahwa aplikasi telah berjalanserta selesainyapengisianjawabandaritiappertanyaanyangada

    Assisten Praktikan Nilai

  • 5/28/2018 Modul Prak PBO

    11/51

    11

    Classdengankonstruktor

    4.BuatlahclassMahasiswa danclassujimahasiswadengancodesebagaiberikut:public class Mahasiswa {

    private String Nama;private String NIM;private String Alamat;private int umur;private String Jurusan;

    public Mahasiswa(String Nama, String NIM) {this.Nama = Nama;this.NIM = NIM;

    }

    public Mahasiswa(String Nama, String NIM, String Alamat) {this.Nama = Nama;this.NIM = NIM;

    this.Alamat = Alamat;}

    public Mahasiswa(String Nama, String NIM, String Alamat,int umur, String Jurusan) {

    this.Nama = Nama;this.NIM = NIM;this.Alamat = Alamat;this.umur = umur;

    this.Jurusan = Jurusan;}

    public String getNIM() {return NIM;

    }

    public String getNama() {return Nama;

    }

    public void setNama(String Nama) {this.Nama = Nama;

    }

    public void setNIM(String NIM) {this.NIM = NIM;

    }

    void cetakInformasi(){System.out.print("NIM mahasiswa "+NIM+" adalah "+Nama);

    }

    }

  • 5/28/2018 Modul Prak PBO

    12/51

    12

    a. Sebutkanstatedanbehavioryangadapadaclassmahasiswadiatas,sertatermasuk

    behaviourjenisapa?(fungsi/prosedur)

    Stateberjumlah:RincianState:

    Behaviorberjumlah:

    Rinciannamabehavior(termasukfungsiatauproc):

    b.buatclassujisebagaiberikut

    public class uji {

    public static void main(String[] args) {

    Mahasiswa mhs1=new Mahasiswa(Daplun,"H1L009002");

    Mhs1.cetakInformasi();

    Mahasiswa mhs2=new Mahasiswa("Daplun",H1L009002,

    Purwokerto);

    System.out.println(mhs2.getNama);

    }

    }

    c.Apaperbedaanantaraobjekyangterbentukpadaobjekmhs1danmhs2

    Perbedaannyaadalah

  • 5/28/2018 Modul Prak PBO

    13/51

    13

    d.Apayangdimaksuddengankonstruktordanadaberapakonstruktorpadaclass

    mahasiswadiatas

    Konstruktoradalah

    Fungsikonstruktor

    e.Apamaksuddarikata-kataprivatedanpublicpadakodesumberclassmahasiswaMaksudprivateadalah

    Maksudpublicadalah

    f.Apamaksuddarikata-katathispadakodesumberclassmahasiswa

    Maksudthisadalah

    g.Apabiladiinginkanuntukmencetakalamatdarimahasiswaataumengubahalamatdari

    mahasiswamakabehaviourapayangharusandatambahkan?Tuliskandanuji

    Behavioryangharusditambahkanadalah:

  • 5/28/2018 Modul Prak PBO

    14/51

    14

    SourcecodeBehaviourtersebutadalah

    h.Tuliskancarapemanggilanbehaviourpadapointhdariobjekmahasiswa

    Telahdiperiksa Tanggal: ModulClassdengankonstruktorDengan ini praktikan telahmenyetujui danmenyatakan bahwa aplikasi telah berjalan serta selesainyapengisianjawabandaritiappertanyaanyangada

    Assisten Praktikan Nilai

  • 5/28/2018 Modul Prak PBO

    15/51

    1)

    MembuatClassdariMainclassdanhasilpengujian

    5.BuatlahclassTelevisidarisuatuclassmainsebagaiberikut:

    public class Main {

    public static void main(String[] args) {Televisi tvFlat=new Televisi("Sharp","3Juta");tvFlat.informasiTv();tvFlat.hidupkanTv();tvFlat.setChannel(1);System.out.println("Televisi diset pada

    channel:"+tvFlat.getChannel());tvFlat.matikanTv();

    }

    }

    Outputdariclassujidiatasadalahsebagaiberikut

    run#

    Te$e%isiS&ar &ar'a JutaTe$e%isi&i)uTe$e%isi)iset a)a *&anne$#+Te$e%isimati

    Buatlah Code dari class Televisi dan jalankan program sehingga tampilan diatasdidapatkan

    public class Televisi {

  • 5/28/2018 Modul Prak PBO

    16/51

    1

    Lanjutan

    public class Televisi {

    }

    Daripercobaan-percobaandiatasmakadapatdisimpulkan:

    ClassAdalah:

    ObjekAdalah:

    PenyusunClassterdiriatas:

    Telahdiperiksa Tanggal: Modul HasilPengujianDengan ini praktikan telahmenyetujui danmenyatakan bahwa aplikasi telah berjalan serta selesainyapengisianjawabandaritiappertanyaanyangada

    Assisten Praktikan Nilai

  • 5/28/2018 Modul Prak PBO

    17/51

    1

    MODUL+.

    )E,A-SAN

    A. Tujuan

    Praktikan diharapkan dapat:

    1. Memahami dan mengimplementasikan konsep pe,arisan

    2. Memahami dan mengimplementasikan this dan super sesuai kebutuhan

    3. Memahami dan mengimplementasikan metodh overriding

    B. Teori Singkat

    &alah satu kelebihan pemrograman berorientasi objek adalah penggunaan ulang kodekode

    !ang telah dibuat. Pe,arisan adalah salah satu #ara untuk menggunakan kodekode

    !ang telah dibuat sebelumn!a.

    &ebagai #ontoh kelas manusia diturunkan menjadi kelas: programmer$ tentara.

    /*

    Disipan !ala "ile prograer.ja#a*/

  • 5/28/2018 Modul Prak PBO

    18/51

    1

    /*

    Disipan !ala "ile tentara.ja#a

    */

    Ke!,ord super digunakan untuk memanggil metodh !ang ada pada base#lass$ sedangkan

    this menunjukkan/mere+erensi pada objek terkini. "ndi adalah seorang programmer

    keturunan manusia$ setelah dia makan lalu kerja dan terakhir dia bersantai dengan

    komputern!a sehingga implementasi dengan kode javan!a.

    /*

    Disipan !ala "ile an!i.ja#a*/

    Kalau dieksekusi #lass "ndi akan menghasilkan

    Naa$ An!i

    N%a... n%a... n%a...Tak.Tak..Klik..

    /ae o#er0 ou lose...

  • 5/28/2018 Modul Prak PBO

    19/51

    1

    &etelah 6bjek andi memberitahu naman!a$ dia makan dengan metodh ,arisan dari kelas

    manusia$ kemudian dia kerja dengan metodh khusus kelas programmer dan terakhir dia

    bersantai juga dengan metodh khusus kelas programmer.

    Kelas turunan akan me,ariskan atributatribut dan metodhmetodh parent#lassn!a/base#lass$

    akan tetapi dia tidak me,arisi konstruktorkonstruktorn!a sehingga ketika andi makan maka

    dia makan dengan metodh dari parent#lassn!a 7manusia8.

    "kan tetapi ketika dia kerja$ dia kerja dengan metodh baru !ang dide+inisikan khusus pada

    kelas programmer 79ak;ak;Klik.. 9 bukan 9Kerja;.kerjaaa;.8$ inilah !ang disebut dengan

    metodh overriding.

  • 5/28/2018 Modul Prak PBO

    20/51

    25

    (. )raktiku

    1. -uatlah 2 objek untuk menginstantiasi kelas pe#inta alam dengan atribut nama dan npm

    "nda sendiri dan 1 teman "nda dengan mengimplementasikan beberapa metodh !ang

    telah "nda de+inisikan dalam kelas kelasn!a.

    2. -uatlah turunan dari kelas mahasis,a !ang telah "nda buat pada modul 1 menjadi

    kelas: Pe#inta alam dan buatlah atribut dan metodhmetodhn!a masingmasing

    seban!ak 2 buah

    Kopile "ile kelas pecinta ala !an o2jek3o2jek %ang tela& An!a 2uat0 keu!ian

    jalankan o2jek3o2jek %ang tela& An!a 2uat 4

  • 5/28/2018 Modul Prak PBO

    21/51

    21

    LAPORAN (PEWARISAN/ INHERITANCE)

    InheritanceSederhana

    1.BuatlahclassSepeda,classSepedaGunungsertaClassUji

    public class Sepeda {public int pedal;public int gear;public int kecepatan;private int standar;

    public Sepeda(){}

    public Sepeda(int pedal, int gear, int kecepatan) {

    this.pedal = pedal;this.gear = gear;this.kecepatan = kecepatan;

    }

    public void remSepeda(int nilaiPengereman) {kecepatan= kecepatan-nilaiPengereman;

    }public void tambahKecepatan(int nilaiTambah) {

    kecepatan= kecepatan+nilaiTambah;}

    }

    public class SepedaGunung extends Sepeda {

    private int Shockbreaker;private int lampu;private int tempatMinum;

    public int getShockbreaker() {return Shockbreaker;

    }

    public int getLampu() {return lampu;

    }public int getTempatMinum() {

    return tempatMinum;}

    public void setShockbreaker(int Shockbreaker) {this.Shockbreaker = Shockbreaker;

    }

    public void setLampu(int lampu) {this.lampu = lampu;

    }public void setTempatMinum(int tempatMinum) {

    this.tempatMinum = tempatMinum;}

    }

  • 5/28/2018 Modul Prak PBO

    22/51

    22

    public class Main {

    public static void main(String[] args) {SepedaGunung Poligon=new SepedaGunung();Poligon.gear=1;Poligon.pedal=2;Poligon.kecepatan=40;Poligon.setLampu(1);

    Poligon.setShockbreaker(2);Poligon.setTempatMinum(1);System.out.println("Jumlah gear:"+Poligon.gear+

    ", Jumlah Pedal:"+Poligon.pedal+", kecepatan:"+ Poligon.kecepatan+

    ",Lampu:"+Poligon.getLampu()+", Shockbreaker:"+Poligon.getShockbreaker());

    }

    }

    Inheritancemerupakanpewarisanatribut(variabel)danbehaviour(method)padasebuahclassyangdiperolehdariclassyangtelahterdefinisi

    a.Darikodediatasyangdisebutsebagaiclassinduk(superclass)danclassturunan(sub-class)adalah:

    Superclass:

    Subclass :

    b.Jelaskanmaksudkalimat:class SepedaGunung extends Sepeda

    Maksudnyaadalah

    c.ClassSepedaGunungmemilikistate/variabel,sebutkanstateyangdimilikiolehclassSepedaGunung:

    StateyangdimilikiolehclassSepedaGunungadalah:

  • 5/28/2018 Modul Prak PBO

    23/51

    23

    d.ClassSepedaGunungmemilikibehaviour,sebutkanbehaviouryangdimilikiolehClass

    SepedaGunung\

    BehaviouryangdimilikiolehclassSepedaGunungadalah:

    e.ClassSepedaGunungditurunkandariclassSepeda,sebutkanstateyangditurunkandari

    classsepeda:

    StateyangdiwarisiolehclassSepedaGunungadalah:

    f.ClassSepedaGunungditurunkandariclassSepeda,sebutkanbehaviouryangditurunkan

    dariclasssepeda:

    BehaviouryangdiwarisiolehclassSepedaGunungadalah:

    g.Tuliskanluaran(output)dariprogramtersebutketikadijalankan:

    Telahdiperiksa Tanggal: ModulInheritanceSederhana

    Dengan ini praktikan telahmenyetujui danmenyatakan bahwa aplikasi telah berjalan serta selesainyapengisianjawabandaritiappertanyaanyangada

    Assisten Praktikan Nilai

  • 5/28/2018 Modul Prak PBO

    24/51

    24

    InheritanceDenganPemanggilanKonstruktorSuper

    KeywordSuperdigunakanuntukmemanggilstateataubehaviourataukonstruktordari

    classinduk(superclass)

    7.Buatlahclassmobil,classmobilTruck

    public class mobil {

    private String Merek;private int roda;private int kursi;private int transmisi;

    public mobil(String Merek, int roda, int kursi, inttransmisi) {

    this.Merek = Merek;this.roda = roda;this.kursi = kursi;this.transmisi = transmisi;

    }

    public String getMerek() {

    return Merek;}public void setMerek(String Merek) {

    this.Merek = Merek;}

    public int getKursi() {return kursi;

    }public void setKursi(int kursi) {

    this.kursi = kursi;}public int getRoda() {

    return roda;}public void setRoda(int roda) {

    this.roda = roda;}

    public int getTransmisi() {return transmisi;

    }public void setTransmisi(int transmisi) {

    this.transmisi = transmisi;}

    }

  • 5/28/2018 Modul Prak PBO

    25/51

    2)

    public class mobileTruck extends mobil {private int bakPasir;

    private int Gandengan;

    public mobileTruck(String Merek, int roda, int kursi, inttransmisi, int bakPasir, int Gandengan) {super(Merek, roda, kursi, transmisi);this.bakPasir = bakPasir;this.Gandengan = Gandengan;

    }

    public void tampilkanTruck(){System.out.println("mobil dengan merk:"+getMerek());System.out.println("mempunyai roda:"+getRoda());System.out.println("transmisi:"+getTransmisi());System.out.println("dilengkapi bak pasir:"+bakPasir);System.out.println("dilengkapi gandengan:"+Gandengan);

    }}

    a.ClassmobileTruckmerupakanclassyangditurunkandariclassmobil.Sebutkanstate

    danbehaviourdariclassmobilyangdiwariskankeclassmobileTruck.

    b.BuatlahClassmaindankemudianlakukanpengujian

    public class main {

    public static void main(String[] args) {mobileTruck Hino=new mobileTruck("HINO",4,2,5,1,1);Hino.tampilkanTruck();

    }}

  • 5/28/2018 Modul Prak PBO

    26/51

    2

    c.output/luarandariprogramadalah

    d.Jelaskan maksuddaripotongankode

    super(Merek, roda, kursi, transmisi);

    padabagianpembentukankonstruktormobileTruck

    Masudnyaadalah

    e.Jelaskan maksuddaripotongankode

    System.out.println("mobil dengan merk:"+super.getMerek());

    padabagianmethod tampilkanTruck() padaclassmobileTruck

    Masudnyaadalah

    Telahdiperiksa Tanggal: ModulKonstruktorSuperDengan ini praktikan telahmenyetujui danmenyatakan bahwa aplikasi telah berjalan serta selesainyapengisianjawabandaritiappertanyaanyangada

    Assisten Praktikan Nilai

  • 5/28/2018 Modul Prak PBO

    27/51

    2

    MODUL5.

    )EN/KA)SULAN

    A. Tujuan

    Praktikan diharapkan dapat:

    1. Memahami dan menggunakan dengan benar hak akses publi#$ prote#ted

    dan private

    2. Memahami kegunaan pengaturan hak akses dalam pengembangan aplikasi

    B. Teori Singkat&alah satu pilar Pemrograman -erorientasi 6bjek 7P-68 adalah pengkapsulan$

    dimana pengembang so+t,are dapat men!embun!ikan detail suatu objek.

    *ak akses publi# memungkinkan semua kelas mengaksesn!a$ hak akses prote#ted

    han!a diberikan kepada kelasn!a sendiri dan turunann!a$ serta kelaskelas dalam

    satu paket. sedangkan private han!a boleh diakses oleh kelasn!a sendiri.

    Mengapa harus ada Pengkapsulan:

    Karena ada in+ormasi !ang harus di sembun!ikan.

    "rtin!a : anggota dari suatu #lass bisa di lindungi agar tidak bisa di akses dari

    luar.

    >aran!a adalah dengan mengganti modi+ieer !ang tadin!a publi# menjadi

    private Pen!embun!ian in+ormasi atau in+ormation hidding adalah mengganti akses

    7modi+ier8 dari publi# menjadi private

    >ontoh : atribut nrp dan anam !angn tadin!a dedeklarsikan publi# menjadi

    private

    perubahan dalam class diagramnya

    "kibat dari ?nkap#ulasi

    Detail in+ormasi dari suatu #lass dapat di lindungi

    &ehingga untuk mengakses in+ormasi tersebut diperlukan suatu perantara

    Perantara !ang di perlukan berupa method !ang bisa di akses oleh user

  • 5/28/2018 Modul Prak PBO

    28/51

    2

    @ntuk mengakses An+ormasi$ di perlukan dua buah method untuk setiap atribut:

    Method untuk mengeset nilai atribut

    Method untuk mengabil nilai atribut

    &ahingga @M< >lass Diagram menjadi >lass

    >lass panggil untuk #lass Ma&asis6a.ja#a

    (. )raktiku

    1. Amplementasikan >lass anggal.java berikut ini:

    2. -uatlah program untuk menguji >lass tanggal.java00

  • 5/28/2018 Modul Prak PBO

    29/51

    2

    LA)O-AN 7)EN/KA)SULAN8

    *ak akses publi# memungkinkan semua kelas mengaksesn!a$ hak akses prote#ted han!a

    diberikan kepada kelasn!a sendiri dan turunann!a$ serta kelaskelas dalam satu paket.

    sedangkan private han!a boleh diakses oleh kelasn!a sendiri.Perhatikan kelas manusia diba,ah ini0

    Andiadalahobjekbentukandarikelasmanusia

  • 5/28/2018 Modul Prak PBO

    30/51

    35

    1. Apayangterjadijikahakaksesprivatediaksesolehkelaslain?

  • 5/28/2018 Modul Prak PBO

    31/51

    31

    2.Ubahhakaksesmakandaripublicmenjadiprotecteddanulangipraktikum nomor1! Apa yangterjadi?Jelaskan!

    3.Tambahkanpadakelasandiuntukmemanggilmetodhbunuhdiri,ulangipraktikum no1. Apayangterjadi?Jelaskan!

    Telahdiperiksa Tanggal: ModulPengkapsulanDengan ini praktikan telah menyetujui danmenyatakan bahwa aplikasi telah berjalan serta selesainyapengisianjawabandaritiappertanyaanyangada

    Assisten Praktikan Nilai

  • 5/28/2018 Modul Prak PBO

    32/51

    32

    MODUL9.

    )OLMO-'SME

    A. Tujuan

    Praktikan diharapkan dapat:

    1. Memahami dan mengimplementasikan pol!mor+isme

    B. Teori Singkat

    &alah satu pilar Pemrograman -erorientasi 6bjek adalah pol!mor+isme !aitu

    kemampuan beberapa objek bertipe sama bereaksi se#ara berbeda terhadap 9pesanB !ang

    sama.

    &ebagai #ontoh kita tambah lagi turunan dari manusia !aitu kelas sopir. Kelas sopir

    diimplementasikan dalam java

    /*Disimpan dalam file sopir.java*/

    Dedi adalah seorang sopir keturunan manusia$ untuk menginstantiasi objek dedi

    ditunjukkan dalam kode berikut.

    /*Disimpan dalam file dedi.java*/

  • 5/28/2018 Modul Prak PBO

    33/51

    33

    Kemudian "ndi sang programmer$ -adu sang tentara dan Dedi sang sopir diperintahkanuntuk bekerja$ apa reaksin!aC

    @ntuk melihat reaksi masingmasing$ perhatikan kode java berikut0

    /*Disimpan dalam file pekerja.java*/

    *asil eksekusi para pekerja adalah sebagai berikut:

    TakTakKlik...

    Dor... Dor... Dor

    Ngung...Ngung...Ngung...Ciiit..

    Message sama !ang dikirimkan ke objek berbeda akan menghasilkan hasil !ang berbeda$

    inilah !ang disebut pol!mor+isme.

    Meto!& A2strak

    Metodh abstra#t adalah metodh !ang belum mempun!ai implementasi. Pende+inisianmetodh abstrak adalah dengan menambahkankeyword abstract$ seperti #ontoh diba,ah ini:

    abstact void BerangkatKerja();

    Pada metodh abstra#t ini tidak dide+inisikan/implementasi metodh -erangkatKerja tersebut

    7misalkan apakah jalan kaki$ naik angkot$ naik motor$ naik mobil atau dengan #ara lainn!a.

  • 5/28/2018 Modul Prak PBO

    34/51

    34

    (. )raktiku

    1. -uatlah kelas ohis !ang merupakan kelas turunan dari mahasis,a dan buatlah

    metodhmetodhn!a.

    2. -uatlah 1 objek untuk menginstantiasi kelas rohis dan mengimplementasikan beberapa

    metodh !ang telah "nda de+inisikan dalam kelas rohis.

    3. Panggilllah objek !ang telah "nda buat pada kelas pe#inta alam dan rohis untuk bekerja

    sehingga tampil e+eke+ek pol!mor+isme

  • 5/28/2018 Modul Prak PBO

    35/51

    3)

    LAPORAN (POLIMORFISME)

    PolymorphismadalahkonsepOOPtentangbanyakbentuk(poly=banyak,morphism

    = bentuk).Disini banyak bentukmaksudnya bahwa objek yang dasarnya sama tapi

    bertindak/bertingkahlakuberbeda-beda.

    MethodOverriding

    MethodOverridingdigunakanantarasuperclassdansubclass,dengankatalain

    overloadingmethoddilakukanantaraclassturunandanclassinduk

    Buatlahclassdasar,classturunansertaclassmain

    public class dasar {

    private int x;

    public dasar(int x) {

    this.x = x;}

    public int getX() {return x;

    }public void tampilkanInformasi() {

    System.out.println("Method dari class induk");System.out.println("x=" + x);

    }}

    public class turunan extends dasar{private int y;

    public turunan(int x, int y) {super(x);this.y = y;

    }public void tampilkanInformasi() {

    System.out.println("Method dari class turunan");System.out.println("nilai x=" + getX());System.out.println("nilai y=" + y);

    }

    }

  • 5/28/2018 Modul Prak PBO

    36/51

    3

    public class Main {

    public static void main(String[] args) {

    dasar a=new dasar(3);a.tampilkanInformasi();turunan b=new turunan(4,5);b.tampilkanInformasi();

    }}

    a.output/luarandariprogramadalah

    b.Behavior(Method)apasajayangditurunkanolehclassindukkeclassturunan

    c.Behavior(Method)apasajayangdioverrideolehclassturunan

    Telahdiperiksa Tanggal: ModulPlymorfismeDengan ini praktikan telahmenyetujui danmenyatakan bahwa aplikasi telah berjalan serta selesainyapengisianjawabandaritiappertanyaanyangada

    Assisten Praktikan Nilai

  • 5/28/2018 Modul Prak PBO

    37/51

    3

    MODUL: !an ;.

    ABST-A(T (LASS DAN NTE-'A(E

    A. ABST-A(T (LASS

    &aat kita membuat sebuah super#lass$ kita tahu bah,a kita dapat memakai semua metode !ang

    dimilikin!a pada #lass anakn!a. "tau kalau kita butuh metode tersebut diperbarui$ kita tinggal

    melakukan override pada metode tersebut.

    api$ pada suatu kasus$ kita ingin membuat super#lass !ang bernama lass ini pun!a beberapa method !ang sudah kita kenal seperti makan$ berna+as$ tidur$ dan

    berjalan. "da satu metode !ang tidak dapat kita generalisasi. >ontohn!a adalah method

    berjalan.*uman sebagai sub#lass dari makhluk hidup berjalan dengan 2 kaki$ sedangkan Dog

    berjalan dengan 4 kaki. @ntuk membuat super#lass !ang umum$ kita bisa membuat suatu

    super#lass !ang memiliki beberapa metode dengan implementasi dan beberapa tidak. >lass inidisebut abstra#t #lass.

    &e#ara umum$ abstra#t #lass adalah #lass !ang tak dapat diinstansiasi. -iasan!a abstra#t #lass

    berada dalam hierarki tertinggi dalam P-6 7pemrograman berorientasi objek8. Metode di dalamabstra#t #lass !ang tidak berisi kode program adalah abstra#t method 7metode abstra#t8. 'antin!a$

    method ini harus dioverride oleh sub#lassn!a. (adi$ kita han!a menulis deklarasi method tanpa

    tubuh metode dan memakai ke!,ord abstra#t. >ontohn!a:public abstract void iniMetode();

    Deklarasi Method ini disebut sebagai protot!pe method.

    &ekarang$ kita #oba buat abstra#t #lass pertama kita:

    &uatu metode !ang sudah dideklarasikan abstra#t harus diakhiri tanpa memakai tubuh program.

    (ika ditulis seperti ini:

  • 5/28/2018 Modul Prak PBO

    38/51

    3

    maka akan terjadi error seperti berikut:

    Ketika sebuah #lass dibuat sebagai sub#lass dari #lass ontoh pembuatan sub#lass !ang benar:

    (ika #lass *uman tidak mengoverride metode ,alk78$ maka akan mun#ul pesan error seperti

    berikut:

    api$ ,alau #lass *uman tidak mengoverride metode !ang lain seperti breath78 dan eat78 7!ang

    tidak abstra#t8 tidak akan terjadi error.

    (adi$ +ungsi abstra#t #lass tak lain adalah untuk membuat protot!pe bagi #lass di tingkatan paling

    atas dalam hierarki #lass dan sub#lassn!a !ang men!ediakan detail implementasi dari abstra#t

    #lass tersebut.

  • 5/28/2018 Modul Prak PBO

    39/51

    3

    B. NTE-'A(E

    inter+a#e adalah sebuah blok !ang berisi deklarasi metode saja untuk diimplementasikan pada

    #lass lain. (adi$ metode !ang ada di dalam inter+a#e tidak memiliki kode program 7bersi+at

    abstra#t8. >ontoh inter+a#e:

    Anter+a#e ini nantin!a berguna untuk membuat satu sub#lass memiliki lebih dari satu super#lass.

    api bukan se#ara etends 7inheritan#e8$ tapi implements 7implementasi8.

    >oba kita buat #lass line !ang mengimplementasikan inter+a#e elation di atas.

  • 5/28/2018 Modul Prak PBO

    40/51

    45

    (ika salah satu dari method is%reater78$ is

  • 5/28/2018 Modul Prak PBO

    41/51

    41

    2. -uatlah abstra#t #lass "latMusik dan diturunkan ke dua #lass$ !aitu #lass

    Musikiup serta #lass Musik%esek seperti #lass diagram di ba,ah ini.

    3. ulislah juga suatu laun#her #lass !ang membuat sebuah objek terompet !ang

    merupakan instan#e dari #lass Musikiup !ang memiliki atribut bun!i 9toettoetB.

    -uatlah pula sebuah objek biola !ang merupakan instan#e dari #lass Musik%esek

    !ang memiliki atribut bun!i 9ngikngokB dan jumlah da,ai 4 buah. &etiap kali

    membuat objek baru

  • 5/28/2018 Modul Prak PBO

    42/51

    42

    LAPORAN (ABSTRACTCLASS)

    Terkadangkitainginmembuatclassdimanatidaksemuamethodyangdideklarasikan

    didalamnyamemilikiimplementasi.Classinimerupakansuperclassyangdibuat

    sebagaidasaruntukkemudiandigunakanolehsubclassnya

    Buatlahclassbentuk2D,classbujursangkar,classpersegisertaclassmain (Abtract Class 1)

    public abstract class bentuk2D {public abstract void cetakLuas();public abstract void cetakKeliling();

    }

    public class bujurSangkar extends bentuk2D{private int sisi;private int luas;private int keliling;

    public bujurSangkar(int sisi) {this.sisi = sisi;

    }public void cetakLuas(){

    luas=sisi*sisi;System.out.println("Luas bujur sangkar adalah:"+luas);

    }public void cetakKeliling(){

    keliling=4*sisi;System.out.println("Keliling bujur sangkar

    adalah:"+keliling);}

    }

    public class persegiPanjang extends bentuk2D {

    private int panjang;private int lebar;private double luas;

    private int keliling;

    public persegiPanjang(int panjang, int lebar) {this.panjang = panjang;this.lebar = lebar;

    }public void cetakLuas(){

    luas=panjang*lebar;System.out.println("Luas persegi adalah:"+luas);

    }public void cetakKeliling(){

    keliling=2*(panjang+lebar);

    System.out.println("Keliling persegi:"+keliling);}

    }

  • 5/28/2018 Modul Prak PBO

    43/51

    43

    public class Main {public static void main(String[] args) {

    bujurSangkar kotak=new bujurSangkar(4);

    persegiPanjang kotakPanjang=new persegiPanjang(4,2);kotak.cetakLuas();kotak.cetakKeliling();kotakPanjang.cetakLuas();kotakPanjang.cetakKeliling();

    }}

    a.output/luarandariprogramadalah

    b.Methodabstractdariclassabstractbangun2DdiimplementasikanolehclassbujurSangkardanclasspersegi,sebutkandantuliskanmethodabstractdariclass

    bangun2DyangdiimplementasikanolehclassbujurSangkardanPersegi

    c.Padaclassmaintambahkankodeberikut:

    bangun2D objAbstract=new bangun2D();

    Bisakahkodetersebutdikompilasi?Bisakahkitamembuatobjectdariclassabstract,

    jelaskanalasananda

  • 5/28/2018 Modul Prak PBO

    44/51

    44

    BuatlahclasssuatuMesin,classmesinCucisertaclassmain (Abtract Class 2)

    public abstract class suatuMesin {privateboolean hidup;private String Nama;public abstract void hidupkanMesin();public abstract void matikanMesin();

    public suatuMesin(String Nama) {this.Nama = Nama;

    }publicboolean isHidup() {

    return hidup;}public void setHidup(boolean hidup) {

    this.hidup = hidup;}

    }

    public class mesinCuci extends suatuMesin{

    public mesinCuci(String Nama) {

    super(Nama);}public void hidupkanMesin() {

    if(isHidup()){System.out.println(getNama()+" sudah hidup");

    }else{setHidup(true);System.out.println(getNama()+" dihidupkan");

    }}

    public void matikanMesin() {if(isHidup()){

    setHidup(false);System.out.println(getNama()+" dimatikan");

    }else{setHidup(true);System.out.println(getNama()+"keadaan mati");

    }

    }}

    public class Main {public static void main(String[] args) {mesinCuci Toshiba=new mesinCuci("Mesin cuci Toshiba");Toshiba.hidupkanMesin();Toshiba.hidupkanMesin();Toshiba.matikanMesin();Toshiba.matikanMesin();}

    }

  • 5/28/2018 Modul Prak PBO

    45/51

    4)

    a.output/luarandariprogramadalah

    b.Jelaskanbagaimanajalannyaprogramberdasarkanpemanggilanmethodpadaclass

    mainsertaluaranprogramyangterjadi

    Telahdiperiksa Tanggal: ModulAbstrak Class 2Dengan ini praktikan telahmenyetujui danmenyatakan bahwa aplikasi telah berjalan serta selesainyapengisianjawabandaritiappertanyaanyangada

    Assisten Praktikan Nilai

    Telahdiperiksa Tanggal: ModulAbstrak Class 1Dengan ini praktikan telahmenyetujui danmenyatakan bahwa aplikasi telah berjalan serta selesainyapengisianjawabandaritiappertanyaanyangada

    Assisten Praktikan Nilai

  • 5/28/2018 Modul Prak PBO

    46/51

    4

    LAPORAN (INTERFACE)

    Adalahsemacamblokspesialyanghanyaberisitandatanganmethod(danmungkinkonstan).

    Menggambarkantandatangandariseperangkatmethod,tanpabody

    InterfaceSederhana

    BuatlahinterfacekontrolTv,classTelevisisertaclassmain

    public interface kontrolTv {public void hidupkan(boolean hidup);public void pindahChannel(int channel);public void keraskanVolume(int tambah);public void pelankanVolume(int kurangi);}

    public class televisi implements kontrolTv {private String merek;privateboolean hidup;private String[] saluran={"RCTI","SCTV","INDOSIAR",

    "TPI","ANTV,TRANSTV","TRANS7"};private int volume=0;

    public televisi(String merek) {this.merek = merek;

    }

    public void hidupkan(boolean hidup) {if(hidup){

    this.hidup=true;System.out.println("Televisi dihidupkan");

    }else{this.hidup=false;

    System.out.println("Televisi dimatikan");}

    }

    public void keraskanVolume(int tambah) {if(hidup){

    volume=volume+tambah;System.out.println("volume menjadi "+volume);

    }else{System.out.println("Televisi dalam keadaan mati");

    }}

  • 5/28/2018 Modul Prak PBO

    47/51

    4

    public void pelankanVolume(int kurangi) {if(hidup){

    volume=volume-kurangi;System.out.println("volume di set ke "+volume);

    }else{System.out.println("Televisi dalam keadaan mati");

    }}

    public void pindahChannel(int channel) {if(hidup){

    System.out.println("TV menjadi"+saluran[channel]);}else{

    System.out.println("Televisi dalam keadaan mati");}

    }}

    public class Main {

    public static void main(String[] args) {

    kontrolTv tvku=new televisi("SHARP");

    tvku.hidupkan(true);

    tvku.keraskanVolume(10);

    tvku.pelankanVolume(3);

    tvku.pindahChannel(5);

    tvku.hidupkan(false); }

    }

    a.output/luarandariprogramadalah

  • 5/28/2018 Modul Prak PBO

    48/51

    4

    b.Jelaskanmaksudpembuatanobjekpadabarisberikut

    kontrolTv tvku=new televisi("SHARP");

    c.Bagaimanamenginisialisasisuatuinterfacedenganobjektuliskan:

    Telahdiperiksa Tanggal: ModulInterfaceDengan ini praktikan telahmenyetujui danmenyatakan bahwa aplikasi telah berjalan serta selesainyapengisianjawabandaritiappertanyaanyangada

    Assisten Praktikan Nilai

  • 5/28/2018 Modul Prak PBO

    49/51

    4

    InterfaceSebagaiMultipleSuperclass(MultipleImplementation)

    Buatlahinterfacekomputer,interfacekontrolTv,classTelevisisertaclassmain

    public interface komputer {

    public void konekInternet(boolean konek);

    }

    public interface kontrolTv {

    public void hidupkan(boolean hidup);

    public void pindahChannel(int channel);

    public void keraskanVolume(int tambah);

    public void pelankanVolume(int kurangi);

    }

    public class televisi implements kontrolTv,komputer {private String merek;private boolean hidup;

    private String[] saluran={"RCTI","SCTV","INDOSIAR","TPI","ANTV,TRANSTV","TRANS7"};

    private int volume=0;

    public televisi(String merek) {this.merek = merek;

    }

    public void konekInternet(boolean konek) {if(konek){

    System.out.println("TV terkoneksiInternet");}else{

    System.out.println("TV tidak terkoneksiInternet");}

    }

    public void hidupkan(boolean hidup) {if(hidup){

    this.hidup=true;System.out.println("Televisi dihidupkan");

    }else{this.hidup=false;

    System.out.println("Televisi dimatikan");}

    }

  • 5/28/2018 Modul Prak PBO

    50/51

    )5

    public void keraskanVolume(int tambah) {if(hidup){

    volume=volume+tambah;

    System.out.println("volume menjadi "+volume);}else{System.out.println("Televisi dalam keadaan mati");

    }}

    public void pelankanVolume(int kurangi) {if(hidup){

    volume=volume-kurangi;System.out.println("volume di set ke "+volume);

    }else{System.out.println("Televisi dalam keadaan mati");

    }

    }

    public void pindahChannel(int channel) {if(hidup){

    System.out.println("TV menjadi"+saluran[channel]);}else{

    System.out.println("Televisi dalam keadaan mati");}

    }}

    public class Main {

    public static void main(String[] args) {televisi GoogleTv=new televisi("Google");

    GoogleTv.hidupkan(true);

    GoogleTv.konekInternet(true);

    GoogleTv.keraskanVolume(10);

    GoogleTv.hidupkan(false);

    }

    }

    a.Luarandariprogramdiatasadalah

  • 5/28/2018 Modul Prak PBO

    51/51

    )1

    b.Jelaskanmaksudbarisberikutyangterdapatpadaclasstelevisi

    public class televisi implements kontrolTv,komputer

    c.Behaviorsapasajayangterdapatpadaclasstelevisedandiimplementasikandari

    interfaceyangmanajelaskan

    Telahdiperiksa Tanggal: ModulMultipleImplementationDengan ini praktikan telahmenyetujui danmenyatakan bahwa aplikasi telah berjalan serta selesainyapengisianjawabandaritiappertanyaanyangada

    Assisten Praktikan Nilai