Upload
izzati-al-vandiar
View
28
Download
1
Embed Size (px)
DESCRIPTION
Dasar - dasar gerbang logika pada mikrokontroller
Citation preview
LAPORAN III
PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK
Disusun untuk Memenuhi Matakuliah Praktikum Pemrograman Berbasis Objek Yang Dibimbing oleh
Azhar Ahmad Smaragdina,
Asisten Praktikum:
Tantri Hari Mukti
Endah Puji Rohmawati
Wildan Setyo
Oleh:
IZZATI ALVANDIAR
130533608179
S1 PTI 2013 Offering F
UNIVERSITAS NEGERI MALANG
FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
S1 PENDIDIKAN TEKNIK INFORMATIKA
SEPTEMBER 2014
LAPORAN KE-III
”INHERITANCE”
A. TUJUAN
1. Memahami konsep inheritance (pewarisan) 2. Mendefinisikan superclasses dan subclasses 3. Override method dari superclass 4. Menerapkan keyword this
B. DASAR TEORI
1. Pewarisan
Pewarisan merupakan konsep dalam pemrograman berorientasi objek yang
memungkinkan untuk membuat suatu kelas yang didasarkan pada kelas yang sudah ada sehingga
mewarisi semua metode dan variabelnya.
2. Keyword super
Keyword super digunakan oleh subclass untuk memanggil konstuktor yang berada pada
superclass.
3. Keyword this
Kata kunci this dipergunakan pada pembuatan kelas dan digunakan untuk menyatakan objek
sekarang
4. Overriding
Overriding menulis kembali method sama persis. Sama mulai dari nama method dan isinya
dan mengimplementasi kembali di subclassnya. Overriding dipakai saat kita menggunakan
method yang sama tapi berbeda implementasinya. Jadi overriding method mempunyai nama
method yang sama, jumlah parameter dan tipe parameter serta nilai kembalian (return) method
yang di override.
C. LATIHAN
1. Latihan 1
Script program 1:
class Pertama
{
private int a=10;
protected void terprotek()
{
System.out.println ("Method ini hanya untuk anaknya");
}
public void info ()
{
System.out.println("a= "+a);
System.out.println("Dipanggil pada = "+this.getClass ().getName());
}
}
Script Program 2 :
class Kedua extends Pertama
{
private int b=8;
protected void BacaSuper()
{
System.out.println ("Nilai b: "+b);
terprotek();
info();
}
}
Script Program 3 :
class TestPertamaKedua
{
public static void main (String[]args)
{
Kedua D2 = new Kedua ();
D2.BacaSuper();
D2.info();
Pertama S1=new Pertama();
S1.terprotek ();
S1.info();
}
}
Kompilasi :
Kompilasi setelah baris S1.terprotek dari class TestPertamaKedua dihilangkan:
Kompilasi class TestPertamaKedua setelah semua file yang berekstensi .class dari folder dihapus :
File berekstensi .class muncul kembali.
Outputnya :
Fungsi dari perintah this.getClass.getName(); adalah :
Ditujukan untuk memanggil ke method getClass yang ada di dalam Class.
2. Latihan 2
Script program 1 :
class Person
{
protected String name;
protected int age;
public Person(String name,int age)
{
this.name=name;
this.age=age;
}
//metode
public void info()
{
System.out.println("Nama : "+this.name);
System.out.println("Usia : "+this.age);
}
//akhir kelas program
}
Script program 2 :
class Employ extends Person
{
private String noKaryawan;
//konstruktor
public Employ(String noKaryawan,String name,int age)
{
super(name, age);
this.noKaryawan=noKaryawan;
}
//metode
public void info ()
{
System.out.println("No. Karyawan : "+this.noKaryawan);
super.info();
}
}
Script program 3 :
public class KonstruktorSuperKelas
{
public static void main(String[]args)
{
Employ programer1=new Employ ("12345678","Yanto",32);
programer1.info();
}
}
Outputnya :
3. Latihan 3
Script program 1 :
public class Hewan
{
public static void testClassMethod()
{
System.out.println("The class Method in Hewan...");
}
public void testInstanceMethod()
{
System.out.println("The Instance Method in Hewan...");
}
}
//meng-overwrite method pada class Hewan
Script program 2 :
public class Gajah extends Hewan
{
public static void testClassMethod()
{
System.out.println("The class method in Gajah...");
}
//meng-override method pada class Hewan
public void testInstanceMethod()
{
System.out.println ("The Instance method in Gajah...");
}
public static void main (String[]args)
{
Gajah myGajah=new Gajah();
Hewan myHewan= myGajah;
Hewan.testClassMethod();
myHewan.testInstanceMethod();
}
}
Outputnya :
4. Latihan 4
Script program 1 :
class A
{
private int a;
public void setA(int nilai)
{
a=nilai;
}
public int getA()
{
return a;
}
public void tampilkanNilai()
{
System.out.println("Nilai a : "+getA());
}
}
Script program 2 :
class B extends A
{
private int b;
public void setB (int nilai)
{
b=nilai;
}
public int getB()
{
return b;
}
//melakukan override terhadap method tampilkanNilai()
//yang terdapat pada kelas A
public void tampilkanNilai()
{
super.tampilkanNilai(); //memanggil method dalam kelas A
System.out.println("Nilai b : "+getB());
}
}
Outputnya :
5. Latihan 5
Script Program 1 :
class Truck{
//the Truck class has three fields
public int cadence;
public int gear;
public int speed;
//the Truck has one constructor
public void Truck(int startCadence, int startSpeed, int startGear){
gear=startGear;
cadence=startCadence;
speed=startSpeed;
}
//the Truck class has four methdos
public void setCadence(int newValue){
cadence= newValue;
}
public void setGear(int newValue){
gear= newValue;
}
public void applyBarek(int decreement){
speed -= decreement;
}
public void speedUp(int increement){
speed += increement;
}
}
Script Program 2 :
public class MountainTruck extends Truck{
//the MountainTruck subclass adds one field
public int seatHeight;
//the MountainTruck subclass has one constructor
public void MountainTruck(int startHeight, int startCadence, int startSpeed, int startGear){
super.Truck(startHeight, startCadence, startGear);
seatHeight = startHeight;
}
//the MountainTruck subclass adds one method
public void setHeight(int newValue){
seatHeight = newValue;
}
public static void main(String []abc){
System.out.println("Mulai Berjalan");
MountainTruck MB = new MountainTruck();
MB.MountainTruck(0,0,0,0);
System.out.println("gear = "+MB.gear);
System.out.println("speed = "+MB.speed);
MB.setGear(2);
MB.speedUp(2);
System.out.println("gear = "+MB.gear);
System.out.println("speed = "+MB.speed);
MB.speedUp(2);
System.out.println("gear = "+MB.gear);
System.out.println("speed = "+MB.speed);
}
}
Outputnya :
Untuk MountaiBike:
Script 1 :
class Bike{
//the Bike class has three fields
public int cadence;
public int gear;
public int speed;
//the Bike has one constructor
public void Bike(int startCadence, int startSpeed, int startGear){
gear=startGear;
cadence=startCadence;
speed=startSpeed;
}
//the Bike class has four methdos
public void setCadence(int newValue){
cadence= newValue;
}
public void setGear(int newValue){
gear= newValue;
}
public void applyBreak(int decreement){
speed -= decreement;
}
public void speedUp(int increement){
speed += increement;
}
}
Script 2: public class MountainBike extends Bike{
//the MountainBike subclass adds one field
public int seatHeight;
//the MountainBike subclass has one constructor
public void MountainBike(int startHeight, int startCadence, int startSpeed, int startGear){
super.Bike(startHeight, startCadence, startGear);
seatHeight = startHeight;
}
//the MountainBike subclass adds one method
public void setHeight(int newValue){
seatHeight = newValue;
}
public static void main(String []abc){
System.out.println("Mulai Diam");
MountainBike MB = new MountainBike();
MB.MountainBike(0,0,0,0);
System.out.println("gear = "+MB.gear);
System.out.println("speed = "+MB.speed);
System.out.println ("Berjalan Normal");
MB.setGear(2);
MB.speedUp(2);
System.out.println("gear = "+MB.gear);
System.out.println("speed = "+MB.speed);
System.out.println ("Berjalan Tanjakan");
MB.speedUp(1);
MB.setGear(1);
System.out.println("gear = "+MB.gear);
System.out.println("speed = "+MB.speed);
System.out.println ("Turun Tanjakan");
MB.speedUp(2);
MB.setGear(2);
System.out.println("gear = "+MB.gear);
System.out.println("speed = "+MB.speed);
System.out.println("Berhenti");
MB.speedUp(0);
MB.applyBreak(5);
MB.setGear(0);
System.out.println("gear = "+MB.gear);
System.out.println("speed = "+MB.speed);
}
}
Outputnya :
D. TUGAS PRAKTIKUM ( SCRIPT DAN HASIL)
1. Melengkapi Program
Script program :
class Induk{
public void test(){
System.out.println("Method di dalam kelas induk");
}
}
class Turunan extends Induk {
public void test(String s){ //Overload method
System.out.println("Method overload di dalam kelas turunan");
System.out.println("s : \""+s+"\"");
}
public void test(){ //Override method
System.out.println("Method override di dalam kelas turunan");
}
}
class TestIndukTurunan{
public static void main(String[] args){
Turunan obj = new Turunan();
obj.test("Class Overload");
obj.test();
}
}
Outputnya :
E. TUGAS RUMAH
1. Tugas Rumah
Script program 1 :
public class Tumbuhan {
protected String name;
protected int keping;
public Tumbuhan(String name, int keping){
this.name = name;
this.keping = keping;
}
public void info(){
System.out.println("Nama Tumbuhan : " + this.name);
System.out.println("Jumlah Keping : " + this.keping);
}}
Script program 2 :
public class Keping extends Tumbuhan {
private String namaKeping;
public Keping(String name, int keping){
super(name,keping);
switch(keping){
case 1:
this.namaKeping = "Monokotil";
break;
case 2:
this.namaKeping = "Dikotil";
default:
break;
}}
public void info(){
super.info();
System.out.println("Nama Keping : " + this.namaKeping);
}}
Script program 3 :
public class TestKepingTumbuhan {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Keping kepingTumbuhan = new Keping("Jagung", 2);
kepingTumbuhan.info();
}}
Outputnya :
2. Tugas Rumah 2
Script Program 1 :
public class TaksonomiHewan { private String nama;
private String makan; public TaksonomiHewan(String nama, String makan){ this.nama = nama; this.makan = makan; } public void info(){ System.out.println("Nama : " + this.nama); System.out.println("Nama Makanan : " + this.makan); } }
Script Program 2 :
public class MakananHewan extends TaksonomiHewan{ protected String makanan[] ={"daging","rumput","serangga","campuran","lain-lain"}; protected String statusHewan; protected String klasifikasi; public MakananHewan(String nama, String makan) { super(nama, makan); for(int i = 0; i < 5; i++){ if(makan == makanan[i]){ this.statusHewan = makan; } } Klasifikasi(); } public String Klasifikasi(){ switch(this.statusHewan){ case "daging": this.klasifikasi = "Karnivora"; break; case "rumput": this.klasifikasi = "Herbivora"; break; case "serangga": this.klasifikasi = "Insektivora"; break; case "campuran": this.klasifikasi = "Omnivora"; case "lain-lain":
break; default: break; } return this.klasifikasi; } public void info(){ super.info(); System.out.println("Jenis Hewan : " + this.klasifikasi); } }
Script Program 3 :
public class TestHewan { public static void main(String[] args){ MakananHewan mkhewan = new MakananHewan("Singa", "daging"); mkhewan.info(); } }
Output :
F. KESIMPULAN
Overriding adalah kemampuan suatu subkelas untuk memodifikasi attribute dan method milik kelas
supernya (tentu yang memiliki sifat private atau final tidak biasa dilakukan overriding).
Semua attribute dan method dari suatu kelas super dapat diwariskan ke subkelas.
Dalam hirarki kelas, jika kelas C merupakan turunan kelas B, dan kelas B merupakan turunan kelas A,
maka otomatis attribute dan method kelas A juga diwariskan kelas C.Tanpa inheritance, maka semua
attribute dan method yang pernah dibuat dan butuhkan kelas lain, harus ditulis ulang seluruhnya. Dengan
inheritance, seorang programmer ingin memodifikasi suatu attribute atau method yang dimanfaatkan
subkelas, maka dilakukan modifikasi attribute dan method tersebut pada kelas supernya.
G. REFERENSI / DAFTAR PUSTAKA
Modul Praktikum III. Pendidikan Teknik Informatika.Universitas Negeri Malang.
Software Velocity Documentation Java
Lafore, Robert. 2002. Object Oriented Programming in C++. Indianapolis
JENI. 2009. Modul Praktikum OOP. Jakarta