laporan pertemuan inheritace

15
Dokumen Laboratorium Teknik Informatika UMM 2015 Laporan Praktikum Pemrograman Berorientasi Objek By Team Informatika UMM LAPORAN PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK INHERITANCE, ABSTRACT, & INTERFACE CLASS DOSEN PEMBIMBING : GALIH W. WICAKSONO S,Kom. NAMA : AKHMAD ZULFIKAR AL GHIVANI 201410370311127 KELAS 2 C

Upload: akhmad-zulfikar

Post on 09-Nov-2015

223 views

Category:

Documents


4 download

DESCRIPTION

Universitas Muhammadiyah Malang |Akhmad Zulfikar Al Ghivani 201410370311127

TRANSCRIPT

Dokumen Laboratorium Teknik Informatika UMM 2015 Laporan Praktikum Pemrograman Berorientasi ObjekBy Team Informatika UMM

LAPORAN PRAKTIKUMPEMROGRAMAN BERORIENTASI OBJEKINHERITANCE, ABSTRACT, & INTERFACE CLASS

DOSEN PEMBIMBING :GALIH W. WICAKSONO S,Kom.

NAMA :AKHMAD ZULFIKAR AL GHIVANI201410370311127KELAS 2 C

LABORATORIUM TEKNIK INFORMATIKAFAKULTAS TEKNIKUNIVERSITAS MUHAMMADIYAH MALANG2015

I. TUJUAN Memahami konsep inheritance, abstract class dan interface Memahami inheritance dan membuat implementasi Inheritance Mampu memahami Abstract class dan membuat implementasi abstract class Mampu memahami inheritance dan membuat implementasi interface

II. ALAT YANG DIPERGUNAKAN Netbeans

III. DASAR TEORIInheritanceAdalah dimana sebuah object mempunyai object turunanAbstract Class Adalah sebuah class setengah jadi (abstrak) yang membuat / memiliki method dan attribute. Abstract class sebenarnya adalah sebuah class, sehingga memiliki semua sifat dari class biasa (punya constructor)Interface ClassAdalah suatu class yang berisi method-method tanpa implementasi, namun tanpa modifier abstract, apabila suatu interface memiliki attribute, maka attributnya akan berlaku sebagai konstanta (static final)

IV. TUGAS PRAKTIKUM1. Dalam tugas 1 ini diminta untuk menganalisis dan menerapkan konsep abstract class dan interdace dalam system inventaris buku diperpustakaan. Anda dapat memodifikasi class-class yang memiliki relevansi seperti class buku dan TA. Berikut diagramnya :

Anda diminta untuk menambahkan abstact method untuk menampilkan katalog buku. Katalog TA dan bukuteks berbeda, karena masing-masing memiliki karakteristik yang berbeda. Selain abstract, terdapat juga interface yang memiliki abstract method hitungdenda. Method ini diimplementasikan di class bukuteks, karena hanya bukuteks yang dapat dipinjamkan. SIlahkan menentukan fungsi hitungdenda dan mensimulasikan proses hitungdenda.2. Terdapat sebuah interface dengan deklarasi berikut :Public interface MesinATM {Void keluarkanUang(double nominal);}

Untuk NIM ganjilBerdasarkan interface di atas, buatlah :Kelas bernama ATMBankSukses yang mengimplementasikan interface MesinATM. Nominal uang yang tersedia di mesin ATM ini adlaah 20, 50, dan 100 ribu. Kelas ATMBankSUkses memilki :

Atribut (private) : kodeTransaksi (String) dan tanggalTransaksi (Date) Konstruktor (kodeTransaksi, tanggalTransaksi) Method get dan set untuk seluruh atribut Implementasi method keluarkanUang adalah menampilkan ke layarberapa lembar uang 20/50/100 ribu yang akan diterima nasabah berdasarkan total nominal yang ingin dia ambil dari mesin ATMBankSukses.

V. HASIL PRAKTIKUM/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */package modul4;

/** * * @author OWNER */

//interface gunanya untuk menghubungkan antara object satu dengan object lainpublic interface Administrasi { public int hitungDenda(int lamaPinjam);

}

a. Source Code Program Inventaris Perpustakaan

Source Code kelas Administrasi.java/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */package modul4;

/** * * @author OWNER */

//INI ADALAH KELAS ABSTRAK MODEL BUKUpublic abstract class Buku implements Administrasi{ private String judul; private String penulis; private String penerbit; private int jumlahhalaman; private String NIM; private String abstrak;

public void setJudul (String judul){ this.judul = judul; }

public String getJudul() { return judul; }

public String getPenulis() { return penulis; }

public void setPenulis(String penulis) { this.penulis = penulis; }

public String getPenerbit() { return penerbit; }

public void setPenerbit(String penerbit) { this.penerbit = penerbit; }

public int getJumlahhalaman() { return jumlahhalaman; }

public void setJumlahhalaman(int jumlahhalaman) { this.jumlahhalaman = jumlahhalaman; }

public String getNIM() { return NIM; }

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

public String getAbstrak() { return abstrak; }

public void setAbstrak(String abstrak) { this.abstrak = abstrak; }

}

Source Code kelas Buku.java/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */package modul4;

import java.util.Scanner;

/** * * @author OWNER */public class Bukuteks extends Buku{ public int BatasPinjam = 7; public int denda = 1000;

public boolean Terlambat(int lamaPinjam) { if (lamaPinjam > BatasPinjam) { return true; } else { return false; } }

public int hitungDenda(int lamaPinjam) { if (Terlambat(lamaPinjam) == true) { return denda * (lamaPinjam - BatasPinjam); } else { return 0; } }

public static void main(String[] args) { // TODO code application logic here Scanner scanner = new Scanner(System.in);

Bukuteks test = new Bukuteks();

//ini masukkan System.out.println("Masukkan Penerbit Buku : "); String penerbit = scanner.nextLine(); test.setPenerbit(penerbit);

//ini keluaran System.out.println("Penerbit : " + test.getPenerbit()); System.out.println('\n');

System.out.print("Lama pinjam = "); int lama_pinjam = scanner.nextInt(); System.out.println("Keterlambatan = " + test.Terlambat(lama_pinjam)); System.out.println("Denda = " + test.hitungDenda(lama_pinjam)); }}

Source Code kelas BukuTeks.java

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */package modul4;

import java.util.Scanner;

/** * * @author OWNER */public abstract class TA extends Buku {

public static void main(String[] args) { // TODO code application logic here Scanner scanner = new Scanner(System.in);

TA tugasakhir = new TA() {

@Override public int hitungDenda(int lamaPinjam) { return 0; } };

//ini masukkan System.out.println("Masukkan NIM : "); String NIM = scanner.nextLine(); tugasakhir.setNIM(NIM); System.out.println("Masukkan Abstraksi : "); String Abstrak = scanner.nextLine(); tugasakhir.setAbstrak(Abstrak);

//ini keluaran System.out.println("NIM : " + tugasakhir.getNIM()); System.out.println("Abstraksi Tugas Akhir : \n" + tugasakhir.getAbstrak()); System.out.println('\n');

}}

Source Code kelas BukuTeks.java

b. Source Code Program ATM/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */package modul4.pkg2;

/** * * @author OWNER */public interface MesinATM {

/** * @param nominal * @param args the command line arguments * @return */ public double keluarkanUang(double nominal); }

Source Code kelas MesinATM.java

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */package modul4.pkg2;

/** * * @author OWNER */public class ATM implements MesinATM { private String kodetransaksi; private int tanggaltransaksi; double nominal,a,b,kurang; public ATM(String kodetransaksi, int tanggaltransaksi){ this.kodetransaksi=kodetransaksi; this.tanggaltransaksi=tanggaltransaksi; }

public String getKodetransaksi() { return kodetransaksi; }

public void setKodetransaksi(String kodetransaksi) { this.kodetransaksi = kodetransaksi; }

public int getTanggaltransaksi() { return tanggaltransaksi; }

public void setTanggaltransaksi(int tanggaltransaksi) { this.tanggaltransaksi = tanggaltransaksi; } public double keluarkanUang(double nominal){ this.nominal = nominal; if(nominal % 10000 !=0){ System.out.println("Keluar "); } else if (nominal >= 100000){ a = nominal%100000; kurang = nominal - a; nominal = kurang / 100000; System.out.println("Cetak uang = " +nominal+ "lembar --"+ " uang Rp100.000,00"); if(a>=50000){ b = a%50000; kurang = a - b; a = kurang / 50000; System.out.println("Cetak uang = " +a+ "lembar --"+" uang Rp50.000,00"); if(b>=20000){ b = b / 20000; System.out.println ("cetak uang = " +b+ "lembar --"+ " uang Rp20.000,00"); } }else if (a >= 20000){ a = a/20000; System.out.println("cetak uang : " +a+ "lembar --"+" uang Rp20.000,00"); } } else if (nominal >= 50000){ a = nominal %50000; kurang = nominal - a; nominal = kurang / 50000; System.out.println("cetak uang : " +nominal+"lembar --"+ " uang Rp50.000,00"); if (a >= 20000){ b = a%20000; kurang = a -b ; a = kurang / 20000; System.out.println("cetak uang : " +nominal+"lembar --"+" uang Rp20.000,00"); }else { System.out.println("Error"); } } return nominal; }}

Source Code kelas ATM.java

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */package modul4.pkg2;

import java.util.Scanner;

/** * * @author OWNER */public class ATMTest { public static void main(String[]args){ String kodetransaksi = null; int tanggaltransaksi = 0; double nominal; Scanner input = new Scanner(System.in); ATM anjungan = new ATM(kodetransaksi,tanggaltransaksi); System.out.println("Masukkan Nominal Uang : "); nominal = input.nextDouble(); anjungan.keluarkanUang(nominal); } }

Source Code kelas ATMTest.javaVI. APA YANG DI DAPAT PERTEMUAN LALU?Untuk minggu lalu, saya mendapat sebuah pemahaman baru mengenai Interface dan abstact di OOP. Dapat disimpulkan bahwa Interface berguna untuk menghubungkan beberapa objek yang ada di dalam sebuah package, dan abstract adalah class yang berperan sebagai induk dari subclass-subclassnya.

Minggu lalu, saya juga mengetahui perbedaan mengenai fungsi dari this dan super dalam inheritance. Misalnya ada :this.NIM = NIM;this disini menunjuk variable NIM di dalam class yang merujuk NIM itu sendiri,Jika this diganti dengan super, maka variable NIM itu mengambil dari kelas abstractnya (induknya)