Laporan Praktikum Proglan BAB 6 - Blog UB

advertisement
LABORATORIUM KOMPUTER DASAR
PROGRAM STUDI INFORMATIKA / ILMU
KOMPUTER
PROGRAM TEKNOLOGI INFORMASI DAN
ILMU KOMPUTER
UNIVERSITAS BRAWIJAYA
PRAKTIKUM PEMROGRAMAN LANJUT
SEMESTER :GENAP
TAHUN : 2013/2014
MODUL 6
Judul Bab
Disusun Oleh
NIM
Dilaksanakan Tanggal
Asisten 1
Asisten 2
Dosen Pengampu
: Interface
: Gustian Ri’pi
: 135150201111060
: 2 Mei 2014
: Faisol Andi Sefihara
: Ovan Jaya Wardana
: Issa Arwani, S.Kom., M.Sc.
Pengesahan
Tanggal:
Asisten
A. Definisi Masalah
1. Membuat sebuah kelas baru yang mengimplementasikan
kelas interface Eatable.
2. Membuat kelas interface Colorable yang memiliki method
dengan nama howToColor(). Kemudian implementasikan
interface ini pada kelas Rectangle, dimana method
howToColor() digunakan untuk memberikan warna dari
bangun seraca random.
3. Membuat program yang melakukan instansiasi kelas dari soal
nomor 1 dan soal nomor 2.
B. Source Code
1
2
3
4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Eatable.java
public interface Eatable {
public String howToEat();
}
Telur.java
public class Telur implements Eatable {
//atribut data
private int berat;
private String warna;
private double harga;
//Constructor class Telur
public Telur(int b, String w, double h) {
berat = b;
warna = w;
harga = h;
}
//Procedure untuk menampilkan Jenis telur
public void Jenis() {
System.out.println("Jenis Telur ini adalah
Telur Ayam");
}
//Procedure untuk menampilkan berat, warna, dan
harga telur
public void cetak() {
System.out.println("Memiliki Berat : " + berat
+ " gram");
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
1
2
3
4
1
2
3
4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
System.out.println("Memiliki Warna : " +
warna);
System.out.println("Memiliki Harga : Rp " +
harga);
}
//Procedure untuk menampilkan cara mengolah telur
untuk dimakan
@Override
public String howToEat() {
String st = "Telur ini dapat dimakan dengan
cara Digoreng atau Direbus";
return st;
}
}
Colorable.java
public interface Colorable {
public String howToColor();
}
Comparable.java
public interface Comparable {
public boolean compareTo(Object obj);
}
Rectangle.java
public class Rectangle implements Comparable,
Colorable {
//atribut data
private double height;
private double width;
public Rectangle() {
height = 0.0;
width = 0.0;
}
//Constructor class Rectangle
public Rectangle(double h, double w) {
height = h;
width = w;
}
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
//Fungsi untuk Mendapatkan nilai atribut height
public double getH() {
return height;
}
//Fungsi untuk Mendapatkan nilai atribut width
public double getW() {
return width;
}
//Fungsi untuk memberikan nilai atribut height dan
width
public void setHW(double h, double w) {
height = h;
width = w;
}
//Procedure untuk menghitung luas
public double area() {
return height * width;
}
//Procedure untuk menghitung keliling
public double perimeter() {
return 2 * (height + width);
}
//procedure untuk mencetak data dari bangun
public void print() {
System.out.println("Segi Empat :");
System.out.println(" Panjang : " + width +
", Lebar : " + height);
System.out.println(" Luas
: " + area());
System.out.println(" Keliling : " +
perimeter());
}
//Procedure untuk membandingkan Luas bidang1
dengan bidang2
@Override
public boolean compareTo(Object obj) {
if (area() == ((Rectangle) obj).area()) {
System.out.println("Kedua bidang memiliki
luas yang Sama.");
return true;
} else {
System.out.println("Kedua bidang memiliki
luas yang Berbeda");
return false;
}
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
1
2
3
4
5
6
7
8
9
10
}
//Procedure untuk memberikan warna bidang
@Override
public String howToColor() {
String color = "";
int i = (int) (Math.random() * 11);
switch (i) {
case (1):
color = "Merah";
break;
case (2):
color = "Jingga";
break;
case (3):
color = "Kuning";
break;
case (4):
color = "Hijau";
break;
case (5):
color = "Biru";
break;
case (6):
color = "Nila";
break;
case (7):
color = "Ungu";
break;
default:
color = "Warni";
}
return color;
}
}
TelurDemo.java
public class TelurDemo {
public static void main(String[] args) {
Telur yes = new Telur(200, "Putih kekuningkuningan", 1500);
yes.Jenis();
yes.cetak();
System.out.println(yes.howToEat());
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
RectangleDemo.java
public class RectangleDemo {
public static void main(String[] args) {
Rectangle rect1 = new Rectangle(7, 5);
Rectangle rect2 = new Rectangle(5, 4);
System.out.println("Bidang 1 ");
System.out.println("---------");
rect1.print();
System.out.println(" Warna
: " +
rect1.howToColor() + "\n");
System.out.println("Bidang 2");
System.out.println("--------");
rect2.print();
System.out.println(" Warna
: " +
rect2.howToColor() + "\n");
System.out.println("Hasil pembandingan Bidang1
dan Bidang2 : " + rect1.compareTo(rect2));
}
}
C. Pembahaasan
Eatable.java
1-4
Deklarasi class interface dengan nama Eatable, dimana
interface ini hanya memiliki sebuah method abstrak dengan
nama howToEat.
Telur.java
1
3-6
8-13
15-19
21-30
32-40
Deklarasi class dengan nama Telur; implementasi dari
interface Eatable.
Deklarasi atribut dengan nama: berat, warna, harga
Constructor untuk class Telur; dengan parameter int b, String
w, double h.
Procedure untuk menampilkan jenis telur
Procedure untuk menampilkan data telur yang meliputi : berat,
warna, dan harga.
Procedure untuk menampilkan cara mengolah telur; melakukan
override pada method howToEat.
Colorable.java
1-4
Deklarasi class interface dengan nama Colorable, dimana
interface ini hanya memiliki sebuah method abstrak dengan
nama howToColor.
1-4
Deklarasi class interface dengan nama Comparable, dimana
interface ini hanya memiliki sebuah method abstrak dengan
nama compareTo.
Comparable.java
Rectangle.java
1-2
4-6
8-11
13-17
19-22
24-27
29-34
36-39
41-44
46-54
56-69
71-102
Deklarasi class dengan nama Rectangle; implementasi dari
kelas interface Comparable dan Colorable.
Deklarasi atribut bertipe double dengan nama: height, width.
Inisialisasi awal pada atribut height dan width dengan nilai 0.0
Constructor class rectangle; berparameter double h, double w.
Fungsi untuk mendapatkan nilai atribut height; return height
Fungsi untuk mendapatkan nilai atribut width; return width
Fungsi untuk memberikan nilai pada atribut height dan width.
Procedure untuk menghitung luas bidang; return height*width
Procedure untuk menghitung keliling bidang
Procedure untuk mencetak data dari kedua bangun
Procedure untuk membandingkan luas bidang1 dan bidang2;
override pada method compareTo.
Procedure untuk memberikan warna bangun secara random;
override pada method howToColor
TelurDemo.java
1
2
3-4
4-8
5-7
Deklarasi kelas dengan nama TelurDemo
Deklarasi method main
Deklarasi obyek baru dengan nama yes; memberikan argument
pada constructor class Telur.
Mengakses data dari method Jenis() dan method cetak(), dan
method howToEat.
RectangleDemo.java
1
2
3
4
5-9
10-14
15-17
Deklarasi kelas dengan nama RectangleDemo
Deklarasi method main
Deklarasi obyek baru dengan nama rect1; memberikan
argument(7, 5) pada constructor class Rectangle.
Deklarasi obyek baru dengan nama rect2; memberikan
argument(5, 4) pada constructor class Rectangle.
Menampilkan data untuk bidang1; Mengakses data dari
method print dan howToColor.
Menampilkan data untuk bidang2; Mengakses data dari
method print dan howToColor.
Menampilkan hasil pembandingan Luas bidang1 dan bidang2;
Mengakses data dari method compareTo.
D. Screenshoot Program
E. Kesimpulan
A. Kesimpulan Program
Program ini menggunakan konsep Interface. Class interface Eatable
dimplementasikan pada class Telur, sedangkan class interface
Comparable dan Colorable diimplementasikan pada class Rectangle.
B. Kesimpulan Modul
1) Interface adalah kumpulan method yang hanya memuat
deklarasi dan struktur method, tanpa detail
implementasinya. Sedangkan detail dari method berada
pada class yang mengimplementasikan interface tersebut.
2) Perbedaan Interface dan Abstract class :
 Abstract class dapat memiliki tipe data dengan semua
tipe data, sedangkan interface tipe datanya hanya
berupa konstanta
 Method pada abstract class dapat berupa method
kongkrit dan method abstract. Sedangkan pada
interface semua method harus berupa method
abstract.
3) Interface dibutuhkan untuk mengaplikasikan suatu
method yang rumit dan spesifik. Dengan menggunakan
class interface maka dalam pembuatan program menjadi
lebih cepat. Karena dapat melakukan multiple
inheritance.
F. Saran
Sejauh ini sudah bagus.
Download