Post on 23-Jun-2015
description
Buku Praktikum
Pemrograman Berorientasi Objek
Untuk Mahasiswa Jurusan Manajemen Informatika jenjang Diploma
Program Studi Sistem Informasi
Oleh:
Dwi Rosa Indah, ST
Nama Mahasiswa :______________________________
Nim :______________________________
Comlabs Fakultas Ilmu Komputer
Universitas Sriwijaya
2011
1
Modul 1Instalasi Java
Tujuan:
Agar Mahasiswa bisa menginstall program java .
Prosedur menginstal java:
1.Klik jdk-6u5-windows-i586-p.exe 2x akan muncul tampilan spt dibawah ini :
Gambar 1. Tampilan Awal instal Java
2.Setting Program java agar bisa disimpan diberbagai drive
Setting My Computer klik Properties Klik Advanced Klik Environment Variables.
Gambar 2. Tampilan System Properties
2
3.Klik Path 2x pada bagian pilih System Variables, Tambahkan dibagian variabel
value dengan ; C:\Program Files\Java\jdk1.5.0_06(sesuai letak java diinstal)
Gambar 3. Tampilan Edit System Variabel
4. Menjalankan Program java dengan membuka cmd prompt.
Gambar 4. Tampilan cmd prompt
5. Mengetik program java di Notepad++
Gambar 5. Tampilan program java di Notepad ++
3
Modul 2Dasar Program Java
Tujuan:
Agar Mahasiswa bisa membuat program java yang sederhana.
Agar Mahasiswa bisa membuat program java dengan menggunakan
penyeleksian kondisi dan perulangan.
Teori Singkat :
Java adalah bahasa pemrograman yang berorientasi objek (OOP) dan dapat
dijalankan pada berbagai platform sistem operasi. Perkembangan Java tidak hanya
terfokus pada satu sistem operasi, tetapi dikembangkan untuk berbagai system operasi
dan bersifat open source.
Bentuk Umum penulisan program java
<modifier> class <nama kelas>{ public static void main(String[] args) { .......... Pernyataan }}
Catatan :1. Program Java yang Anda buat harus selalu diakhiri dengan ekstensi file .java.
2. Nama File seharusnya sesuai/sama dengan nama class public nya. Sebagai contoh,
jika nama class public Anda adalah Hello, Anda harus menyimpan file tersebut dengan
nama Hello.java.
Java telah menyediakan keyword if....else dan switch untuk memfasilitasi
penyeleksian kondisi.
Bentuk umum penyeleksian :
Satu Kasus Banyak Kasus switchif (kondisi){...pernyataan...}else{...pernyataan...}
if (kondisi){...pernyataan...}else if(kondisi){...pernyataan...}else{...pernyataan...}
switch(pilihan){case 1:{..pernyataan..}break;case n: {..pernyataan..}break ;default:{..pernyataan..}}
4
Bila Anda diminta untuk melakukan seleksi sebanyak 500 orang mahasiswa, maka
dibutuhkan statement perulangan yang akan mengulangi proses sampai selesai. Terdapat
pilihan perulangan dalam java yaitu for, while dan do...while.
Bentuk umum perulangan :
for While do...whilefor(kondisi){...pernyataan...}
while(kondisi){...pernyataan...}
do{...pernyataan...}while(kondisi);
Prosedur LKP 1. Implementasi Java
1. Buka Notepad ++
2. Pilih File New
3. Ketikan program dibawah ini :
1 : public class TipeData {
2 : public static void main(String[ ] args) {
3 : int a =5;
4 : int b = (int)(27.5/5);
5 : float c = 5;
6 : float d = (float) 27/5;
7 : float e =5.12345;
8 : float f =(int)d+(int)e;
9 : char g = ‘K’;
10 : String h="AKU SUKA";
11 : String i =h+" PEMROGRAMAN Java";
12 : String j =i+"KEREN ABIS ^_^"+g;
13 : System.out.println("Nilai a="+a);
14 : System.out.println("Nilai b="+b);
15 : System.out.println("Nilai c="+c);
16 : System.out.println("Nilai d="+d);
17 : System.out.println("Nilai f="+f);
18 : System.out.println("Nilai g="+g);
19 : System.out.println("Nilai h="+h);
20 : System.out.println("Nilai i="+i);
21 : }
22 : }
4. Simpan dengan nama TipeData(disamakan dengan nama kelas)
5. Compile program tersebut dengan cara membuka cmd prompt, langkah-langkah
sebagai berikut :
1. Ketikkan letak folder nya. G:
5
2. Ketikkan cd spasi nama_folder, Contoh : cd Lat_java
3. Untuk mengcompile, ketikkan javac spasi nama_file_java.java, Contoh :
javac TipeData.java
4. Untuk menRun kan, ketikkan java spasi nama_file_java, Contoh : java
TipeData
Prosedur LKP 2: Program dengan Menggunkan Seleksi IF
1. Buat file baru dengan cara Pilih File New
2. Lengkapi dan jalankan program berikut ini : (Lengkapi dengan menggunakan pena
pada bagian yang kurang lengkap)
1: public class Grade {
2: public static void main( String[] args ) {
3: double grade = 92.0;
4: if grade >= 90 {
5: System.out.println( "Excellent!");
6: } else if (grade < 90 && grade >= 80) {
7: System.out.println("Good job!");
8: } else if (grade < 80) AND (grade >= 60)
9: System.out.println("Study harder!");
10: } else {
11: System.out.println("Sorry, you failed.");
12: }
13: }
14: }
3. Simpan dengan nama file disamakan dengan nama kelas
4. Compile program tersebut di cmd prompt
Tugas
1. Buatlah program untuk menentukan total uang yang harus dibayar oleh pembeli
dengan ketentuan sebagai berikut:
• Bila total belanja < 500.000 maka diskon 5%
• Bila total belanja 500.000‐1000.000 maka diskon 10%
• Bila total belanja >1000.000 maka diskon 15%
Tugas dikerjakan dibawah ini dengan tulis tangan:
6
Tanggal : Nilai : Paraf :
2. Buatlah program untuk menghitung rata-rata nilai mahasiswa dari 10 mahasiswa.
Dimana masing nilai dari ke sepuluh mahasiswa tersebut adalah
90,80,70,90,89,70,90,78,100,50.
7
Tugas dikerjakan dibawah ini dengan tulis tangan:
Tanggal : Nilai : Paraf :
3. Buatlah program java untuk membentuk bintang segitiga seperti gambar dibawah ini :
** *
8
* * *
Tanggal : Nilai : Paraf :
Modul 3Class BufferedReder dan
9
Class JOptionPane
Tujuan :
Agar Mahasiswa mampu membuat program Java yang interaktif dengan
menggunakan class BufferedReader dan Class JOptionePane
Teori Singkat :
Kita sudah mempelajari konsep mendasar pada Java dan menulis beberapa
program sederhana. Sekarang kita akan mencoba membuat program kita lebih interaktif
dengan menggunakan input dari keyboard. Pada bab ini, kita akan mempelajari dua cara
memberikan input, yang pertama adalah menggunakan kelas BufferedReader dan
melalui GUI (Graphical User Interface) dengan menggunakan kelas JOptionPane.
Berikut ini adalah langkah-langkah yang diperlukan untuk mendapatkan input dari
keyboard dengan menggunakan class BufferedReader:
1. Tambahkan di bagian paling atas code Anda:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
2. Tambahkan statement berikut:
BufferedReader dataIn = new BufferedReader(new InputStreamReader( System.in) );
3. Deklarasikan variabel String temporary untuk mendapatkan input, dan gunakan
fungsi readLine() untuk mendapatkan input dari keyboard. Anda harus mengetikkannya
di dalam blok try-catch: Bentuk Umumnya
try{
String temp = dataIn.readLine();
}
catch( IOException e ){
System.out.println(“Error in getting input”);
}
Langkah-langkah yang diperlukan untuk mendapatkan input dari keyboard dengan
menggunakan class JOptionPane:
1. Tambahkan di bagian paling atas code Anda:
import javax.swing.JOptionPane;
10
Menjelaskan bahwa kita mengimpor class JoptionPane dari package javax.swing.
Bisa juga ditulis seperti, import javax.swing.*;
Pernyataan,
name = JOptionPane.showInputDialog("Please enter your name");
membuat sebuah input dialog JOptionPane, yang akan menampilkan dialog dengan
sebuah pesan, sebuah textfield dan tombol OK seperti pada gambar. Hasil dari dialog
tersebut adalah String dan disimpan ke dalam variabel name.
Prosedur LKP1 : Menggunakan class BufferedReader:
1. Buka Notepad ++
2. Pilih File New
3. Ketikan Program dibawah ini :
1: import java.io.BufferedReader;
2: import java.io.IOException;
3: import java.io.InputStreamReader;
4:
5: public class GetInputFromKeyboard
6: {
7: public static void main( String[ ] args ){
8: BufferedReader dataIn = new BufferedReader(new
InputStreamReader( System.in) );
9: String[][] dataMhs = new String[5][3];
10: System.out.print("Input Data Mahasiswa:");
11: for(int i=0; i<dataMhs.length; i++) {
11: try{
12: System.out.println("Data Ke-"+(i+1));
13: System.out.print("NIM : ");
14: String input = dataIn.readLine();
15: dataMhs[i][0] = input;
16: System.out.print("Nama : ");
17: input = dataIn.readLine();
18: dataMhs[i][1] = input;
19: System.out.print("Umur : ");
20: input = dataIn.readLine();
21: dataMhs[i][2] = input;
22: System.out.println();
23: } catch (IOException e) {
24: System.out.println("Error in getting
11
input");
25: }
26: }
27: System.out.println("Tampilan Data Mahasiswa");
28: System.out.println("=======================");
29: for(byte i=0; i<dataMhs.length; i++) {
30: System.out.println("Data Ke-"+(i+1));
31: System.out.println("Nim : "+dataMhs[i][0]);
32: System.out.println("Nama : "+dataMhs[i][1]);
33: System.out.println("Umur : "+dataMhs[i][2]);
34: System.out.println();
35: }
36: }
37: }
4. Simpan dengan nama GetInputFromKeyboard (disamakan dengan nama kelas)
5. Compile program tersebut dengan cara membuka cmd prompt.
Prosedur LKP 2: Menggunakan class JoptionPane
1. Buka Notepad ++
2. Pilih File New
3. Ketikan Program dibawah ini :
1: import javax.swing.JOptionPane;
2:
3: public class Kuadran {
4: public static void main(String[] args) {
5: String X="";
6: String Y="";
7: X=JOptionPane.showInputDialog("Input nilai x: ");
8: Y=JOptionPane.showInputDialog("Input nilai y: ");
9:
10: int x=Integer.parseInt(X);
11: int y=Integer.parseInt(Y);
12:
13: if((x>0)&&(y>0))
14: { JOptionPane.showMessageDialog(null,"Berada pada kuadran I");}
15: else if((x<0)&&(y>0))
16: { JOptionPane.showMessageDialog(null,"Berada pada kuadran II"); }
17: else if((x<0)&&(y<0))
12
18: { JOptionPane.showMessageDialog(null,"Berada pada kuadran III"); }
19: else if((x>0)&&(y<0))
20: { JOptionPane.showMessageDialog(null,"Berada pada kuadran IV"); }
21: }
22: }
4. Simpan dengan nama Kuadran(disamakan dengan nama kelas)
5. Compile program tersebut dengan cara membuka cmd prompt.
Tugas
1. Kata Terakhir (versi BufferedReader)
Menggunakan BufferedReader, tanyakan tiga kata dari user dan tampilkan output dari
input user tersebut ke layar. Contoh,
Enter word1:Goodbye
Enter word2:and
Enter word3:Hello
Goodbye and Hello
2 Kata Terakhir (versi JOptionPane)
Menggunakan JOptionPane, tanyakan tiga kata dari user dan tampilkan output dari input
user tersebut ke layar. Contoh
Gambar 3: Menampilkan Pesan
Gambar 2: Input Kedua
13
Gambar 1: Input Pertama
Tugas dikerjakan dibawah ini dengan tulis tangan:
14
Tanggal : Nilai : Paraf :
2. Ambil tiga nilai ujian dari user dan hitung nilai rata-rata dari nilai tersebut. Berikan
output rata-rata dari tiga ujian. Berikan juga smiley face pada output jika nilai rata-rata
lebih besar atau sama dengan 60, selain itu beri output :-(.
Gunakan BufferedReader untuk mendapat input dari user, dan System.out untuk output
hasilnya. Dan Gunakan JOptionPane untuk mendapat input dari user dan output
hasilnya.
15
Tanggal : Nilai : Paraf :
Modul 4Enkapsulasi
Tujuan :Agar mahasiswa mampu membuat class mereka sendiri dengan mendeklarasikan
atribut dan method pada class dgn menggunakan referensi this untuk mengakses
instance data
Teori Singkat :
Class
Class merupakan model, cetak biru atau prototipe dari objek-objek. Objek merupakan
instan dari class. Class terdiri dari atribut dan method. Setiap objek yang diinstansiasi
dari class yang sama memiliki jenis atribut dan method yang sama.
class dideklarasikan sebagai berikut:
class NamaClass {
//deklarasi atribut
//deklarasi method
}
Keterangan:
• Class merupakan kata kunci yang digunakan untuk mendeklarasikan suatu class.
16
• NamaClass merupakan identifier, biasanya ditulis dengan diawali huruf besar untuk
setiap kata dan tanpa spasi.
• Atribut bisa berjumlah 0 atau lebih
• Method bisa berjumlah 0 atau lebih.
Deklarasi Atribut
Deklarasi atribut dapat dituliskan sebagai berikut:
<modifier> <type> <name> [= <default_value>] ;
Contoh:
private String nim;
atau
private String nim = “00”;
Deklarasi Method
Deklarasi method dapat dituliskan sebagai berikut:
<modifier> <returnType> <name>(<parameter>*) {
...pernyataan...
}
Contoh:
public void setNim (String newNim) {
... pernyataan...
}
atau
public String getNim() {
... pernyataan...
}
Membuat Objek
Untuk membuat objek dari suatu class dapat dilakukan dengan cara sebagai berikut:
NamaClass namaObjek = new NamaClass();
Contoh:
Mahasiswa mhs1 = new Mahasiswa();
17
Konstruktor
Konstruktor merupakan method yang tidak memiliki return type yang memiliki
nama yang sama dengan nama classnya. Konstruktor berfungsi untuk melakukan
inisialisasi terhadap atribut - atribut.
Konstruktor tidak dapat dipanggil secara langsung namun akan dipanggil
otomatis sesaat setelah objek dibuat dengan kata kunci new.
Berikut ini deklarasi konstruktor:
<modifier> <className> (<parameter>*) {
.....pernyataan....
}
Contoh:
public Mahasiswa(), merupakan konstruktor tanpa parameter
public Mahasiswa(String nim, String nama, String alamat), merupakan konstruktor
dengan parameter nim, nama dan alamat.
Kata kunci “this”
Penggunaan kata kunci “this” terdiri dari 2 macam:
• Untuk mengakses atribut dari dalam class
Contoh:
String nim;
String nama;
void setNim(String nim) {
this.nim = nim;
}
Keterangan:
“this.nim” mengacu pada atribut nim dari class Mahasiswa. Penggunaan this akan
menghilangkan kerancuan antara atribut nim dan parameter nim.
• Untuk memanggil konstruktor dari konstruktor lain
Contoh:
String nim;
18
String nama;
String alamat;
Mahasiswa(String nim, String nama) {
this.nim = nim;
this.nama = nama;
}
Mahasiswa(String nim, String nama, String alamat) {
this(nim, nama); //memanggil konstruktor pertama
this.alamat = alamat;
}
Keterangan:
“this(nim, nama)” berarti memanggil konstruktor “Mahasiswa(String nim, String
nama)”. Hal ini sama artinya bila kita tuliskan “this.nim = nim” dan “this.nama =
nama”.
Prosedur LKP 1:Membuat Class Mahasiswa
1. Buka Notepad ++
2. Pilih File New
3. Membuat sebuah Class dengan nama Mahasiswa
1: public class Mahasiswa
2: {
4. Membuat atribut mahasiswa
3: private String nim;
4: private String nama;
5: private String alamat;
5. Membuat method dari class mahasiswa, yang terdiri dari method sebagai berikut:
• setNim(), berfungsi untuk mengeset data nim
• setNama(), berfungsi untuk mengeset data nama
• setAlamat(), berfungsi untuk mengeset data alamat
• getNim(), berfungsi untuk membaca data nim
• getNama(), berfungsi untuk membaca data nama
19
• getAlamat(), berfungsi untuk membaca data alamat
6. public void setNim(String pNim) {
7. nim = pNim;
8. }
9. public void setNama(String pNama) {
10. nama = pNama;
11. }
12. public void setAlamat(String pAlamat) {
13. alamat = pAlamat;
14. }
15. public String getNim() {
16. return nim;
17. }
18. public String getNama() {
19. return nama;
20. }
21. public String getAlamat() {
22. return alamat;
23. }
24. }
6. Simpan program di atas dengan nama file Mahasiswa.java
7. Lalu Compile program tersebut dengan membuka cmd prompt. Ingat program
diatas tidak dapat dieksekusi karena bukan class utama (main class). Class utama
adalah class yang memiliki method “public static void main()”.
8. Selanjutnya buat class utama yang menggunakan class Mahasiswa dengan
membuka file baru pada notepad
1: class TestMahasiswa {
2: public static void main(String[] args) {
9. Membuat objek dari suatu class.
mhs1 dan mhs2 masing‐masing merupakan objek dari class Mahasiswa. Kata kunci
new digunakan untuk memesan memori untuk objek yang dibuat. variabel mhs1 dan
mhs2 disebut dengan variabel reference.
3: Mahasiswa mhs1 = new Mahasiswa();
4: Mahasiswa mhs2 = new Mahasiswa();
10. Mengakses atribut
20
5: mhs1.setNim("01");
6: mhs1.setNama("Ahmad");
7: mhs1.setAlamat("Budi");
8: System.out.println("Nim dari mhs1 = " +mhs1.getNim());
9: System.out.println("Nama dari mhs1 = " +mhs1.getNama());
10: System.out.println("Alamat dari mhs1 = "+mhs1.getAlamat());
11: mhs2.setNim("02");
12: mhs2.setNama("Umar");
13: mhs2.setAlamat("Sukamaju");
14: System.out.println("Nim dari mhs2 = " +mhs2.getNim());
15: System.out.println("Nama dari mhs2 = " +mhs2.getNama());
16: System.out.println("Alamat dari mhs2 = "+mhs2.getAlamat());
17: }
18: }
11. Simpan program di atas dengan nama file TestMahasiswa.java
12. Lalu Compile program tersebut di cmd prompt.
Prosedur LKP 2:Menghitung Luas Persegi Panjang
1. Buka Notepad ++
2. Pilih File New
3. Membuat sebuah Class dengan nama Luas Persegi Panjang
1: class PersegiPanjang
2: {
3: private int pj;
4: private int lb;
5:
6: public setPanjang(int pj) {
7: this.pj = pj;
8: }
9:
10: public void setLebar(int lb) {
11: lb = lb;
12: }
13:
14: public int getPanjang() {
15: return pj;
16: }
21
17:
18: public int getLebar() {
19: return lb;
20: }
21: }
4. Disimpan dengan nama file PersegiPanjang.
5. Compile program di atas di cmd prompt.
6. Selanjutnya membuat class Utama dari class PersegiPanjang dengan membuka file
baru di Notepad.
1: class TestPersegiPanjang {
2: public static void main(String[] args) {
3: PersegiPanjang p1 = new PersegiPanjang();
4: PersegiPanjang p2 = new PersegiPanjang();
5:
6: p1.setPanjang(10);
7: p1.setLebar(5);
8:
9: System.out.println("p1 panjangnya = "+p1.getPanjang());
10: System.out.println("p1 lebarnya = "+p1.getLebar());
11: System.out.println("Luas p1 adalah "+p1.hitungLuas());
12:
13: p2.setPanjang(7);
14: p2.setLebar(3);
15:
16: System.out.println("p2 panjangnya = "+p2.getPanjang());
17: System.out.println("p2 lebarnya = "+p2.getLebar());
18: int luasP2 = p2.hitungLuas();
19: System.out.println("Luas p2 adalah "+luasP2);
20: }
21: }
7. Simpan program di atas dengan nama file TestPersegiPanjang.java
8. Lalu Compile program tersebut di cmd prompt.
Prosedur LKP 3: Modifikasi percobaan 1 dengan menambah Konstruktor
overloading
1. Buat file baru
2. Pilih File New
22
3. Membuat sebuah Class dengan nama Mahasiswa
1: public class MahasiswaModif
2: {
3: private String nim;
4: private String nama;
5: private String alamat;
4. Membuat Kostruktor dengan nama yang sama dengan nama Class.
public MahasiswaModif(), merupakan konstruktor tanpa parameter
6: public MahasiswaModif() {
7: this.nim = "N/A";
8: this.nama = "noname";
9: this.alamat = "unknown";
10: }
5. Membuat Konstruktor berparameter dengan parameter nim, nama,alamat
11: public MahasiswaModif (String nim, String nama, String alamat) {
12: this.nim = nim;
13: this.nama = nama;
14: this.alamat = alamat;
15: }
6. Membuat Method
16: public void setNim(String pNim) {
17: nim = pNim;
18: }
19: public void setNama(String pNama) {
20: nama = pNama;
21: }
22: public void setAlamat(String pAlamat) {
23: alamat = pAlamat;
24: }
25: public String getNim() {
26: return nim;
27: }
28: public String getNama() {
29: return nama;
30: }
31: public String getAlamat() {
32: return alamat;
23
33: }
34: }
7. Simpan dengan nama file MahasiswaModif
8. Compile program diatas di cmd prompt
9. Buat Class Utama dari Class MahasiswaModif dengan membuka file baru di
notepad
1: class TestMahasiswaModif {
2: public static void main(String[] args) {
10. Menginstansiasi konstruktor
3: Mahasiswa Modif mhs1 = new MahasiswaModif ();
4: Mahasiswa Modif mhs2 = new MahasiswaModif ("03", "Budi",
"Sukamaju");
11. Mengakses Atribut
5: System.out.println("Nim dari mhs1 = " +mhs1.getNim());
6: System.out.println("Nama dari mhs1 = " +mhs1.getNama());
7: System.out.println("Alamat dari mhs1 = "+mhs1.getAlamat());
8: System.out.println("Nim dari mhs2 = " +mhs2.getNim());
9: System.out.println("Nama dari mhs2 = " +mhs2.getNama());
10: System.out.println("Alamat dari mhs2 = "+mhs2.getAlamat());
11: }
12: }
12. Simpan program di atas dengan nama file TestMahasiswaModif.java
13. Lalu Compile program tersebut di cmd prompt.
Prosedur LKP 4: Program Point dengan overloading method1. Buat file baru
2. Pilih File New
3. Membuat sebuah Class dengan nama Point. Dengan memiliki 2 macam method
distance yaitu distance dengan parameter objek titik juga dan yang kedua method
distance dengan parameter koordinat x,y.
1: class Point {
2: int x, y;
3: Point(int x, int y) {
4: this.x = x;
5: this.y = y;
24
6: }
7: double distance(int x, int y) {
8: int dx = this.x - x;
9: int dy = this.y - y;
10: return Math.sqrt(dx*dx + dy*dy);
11: }
12: double distance(Point p) {
13: return distance(p.x, p.y);
14: }
15: }
4. Compile program diatas di comand prompt
5. Buat program kelas utama dengan nama TesPoint.
1: class TestPoint {
2: public static void main(String[] args) {
3: Point p1 = new Point(0, 0);
4: Point p2 = new Point(30, 40);
5: System.out.println("p1 = " +p1.x+ ", " +p1.y);
6: System.out.println("p2 = " +p2.x+ ", " +p2.y);
7: System.out.println("p1.distance(p2) = " +p1.distance(p2));
8: System.out.println("p1.distance(60,80) = "
+p1.distance(60,80));
9: }
10: }
6. Simpan Program tersebut dengan nama file TestPoint
7. Compile program diatas di comand prompt
Tugas
1.Buatlah program untuk menghitung luas segitiga dengan konsep OOP dg ketentuan
sebagai berikut:
• Data alas dan tinggi diinputkan
• Objek segitiga dibuat dari class Segitiga
• Class Segitiga memiliki atribut alas dan tinggi dan method setAlas, setTinggi, getAlas,
getTinggi serta hitungLuas.
Tugas dikerjakan dibawah ini dengan tulis tangan:
25
26
Tanggal : Nilai : Paraf :
2. Buatlah program dengan kasus yang mengandung overloading method
27
Tanggal : Nilai : Paraf :
28
Modul 6Inheretence
Tujuan :Mahasiswa memahami dan mampu mengimplementasikan konsep inheritance,
atrribut dan method public, private, dan protected dalam pemrograman.
Teori Singkat :Inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek dapat
mempunyai entitas/obyek turunan. Suatu class yang mempunyai class turunan
dinamakan parent class atau base class. Sedangkan class turunan itu sendiri seringkali
disebut subclass atau child class.
Semua class di dalam Java adalah merupakan subclass dari class super induk
yang bernama Object.
Bentuk Umum Inheretence :
public class A {
…
}
public class A extends Object {
…
}
Adapun jenis‐jenis access control adalah sebagai berikut:
• Default
29
Hanya class dalam package yang sama yang memiliki hak akses terhadap atribut dan
methods dalam class. Jenis ini tidak memiliki kata kunci. Semua atribut dan method
yang tidak secara eksplisit dituliskan jenis access control‐nya maka dianggap default.
• Private
Mengijinkan pengaksesan atribut dan method hanya dari class dimana atribut dan
method berada.
Contoh: private int panjang;
• Public
Mengijinkan seluruh atribut dan method untuk diakses baik dari dalam dan luar class.
Contoh: public int panjang;
• Protected
mengijinkan atribut dan method untuk diakses dari dalam class dan dari subclassnya.
Contoh: protected int panjang;
Penggunaan Kata Kunci Super.
Kata kunci super dipakai untuk merujuk pada member dari parent class.
Sebagaimana kata kunci this yang dipakai untuk merujuk pada member dari class itu
sendiri.
• Format penulisannya adalah sebagai berikut :
super.data_member
super.function_member() //merujuk pada parent class
Prosedur LKP 1: class Coordinate2D yang merupakan koordinat 2 dimensi
1. Buka Notepad ++
2. Pilih File New
3. Membuat sebuah Class induk dengan nama Coordinate2D
1: class Coordinate2D {
2: protected int x, y;
3: public Coordinate2D(int inX, int inY) {
4: x = inX;
5: y = inY;
6: }
7: public int getX() {
8: return x;
30
9: }
10: public int getY() {
11: return y;
12: }
13: }
4. Kemudian buat subclass dari class Coordinate2D bernama Coodinate3D, dengan
membuka file baru pada notepad.
1: class Coordinate3d extends Coordinate {
2: protected int z;
3: public Coordinate3d(int inX, int inY, int inZ) {
4: super(inX, inY);
5: z = inZ;
6: }
7: public int getZ() {
8: return z;
9: }
10: }
5. Buat Kelas Utama dengan nama TesCoordinate
1: class TesCoordinate {
2: public static void main(String[] args) {
3: Coordinate2D myCoord = new Coordinate2D(5, 10);
4: System.out.println("Nilai x dari myCoord = "+myCoord.getX());
5: System.out.println("Nilai y dari myCoord = "+myCoord.getY());
6:
7: Coordinate3d myCoord = new Coordinate3d(5, 10, 15);
8: System.out.println("Nilai x dari myCoord = " myCoord.getX());
9: System.out.println("Nilai y dari myCoord = " myCoord.getY());
10: System.out.println("Nilai z dari myCoord = " myCoord.getZ());
11:
12: }
13: }
6. Simpan ketiga program diatas dengan nama file sesuai dengan nama kelas.
7. Compile ketiga program tersebut di Comand prompt
Prosedur LKP 2: class Coordinate2D yang merupakan koordinat 2 dimensi
1. Buka Notepad ++
2. Pilih File New
31
3. Membuat sebuah Class induk dengan nama Point
1: class Point {
2: private int x, y;
3: Point(int x, int y) {
4: this.x = x;
5: this.y = y;
6: }
7: double distance(int x, int y) {
8: int dx = this.x - x;
9: int dy = this.y - y;
10: return Math.sqrt(dx*dx + dy*dy);
11: }
12: double distance(Point p) {
13: return distance(p.x, p.y);
14: }
15: }
4. Kemudian buat subclass dari class Point bernama Point3D, dengan membuka file
baru pada notepad.
1: class Point3D extends Point {
2: int z;
3: Point3D(int x, int y, int z) {
4: super(x, y);
5: this.z = z;
6: }
7: double distance(int x, int y, int z) {
8: int dx = this.x - x;
9: int dy = this.y - y;
10: int dz = this.z - z;
11: return Math.sqrt(dx*dx + dy*dy + dz*dz);
12: }
13: double distance(Point3D other) {
14: return distance(other.x, other.y, other.z);
15: }
16: double distance(int x, int y) {
17: double dx = (this.x / z) - x;
18: double dy = (this.y / z) - y;
19: return Math.sqrt(dx*dx + dy*dy);
20: }
21: }
32
5. Buat Kelas Utama dengan nama TesPoint
1: class TesPoint {
2: public static void main(String[] args) {
3: Point3D p1 = new Point3D(30, 40, 10);
4: Point3D p2 = new Point3D(0, 0, 0);
5: Point p = new Point(4, 6);
6: System.out.println("p1 = " +p1.x+ ", " +p1.y+ ", "+p1.z);
7: System.out.println("p2 = " +p2.x+ ", " +p2.y+ ", "+p2.z);
8: System.out.println("p = " +p.x+ ", " +p.y);
9: System.out.println("p1.distance(p2) = "+p1.distance(p2));
10: System.out.println("p1.distance(4,6) = "+p1.distance(4,6));
11: System.out.println("p1.distance(p) = " +p1.distance(p));
12: }
13: }
6. Simpan ketiga program diatas dengan nama file sesuai dengan nama kelas.
7. Compile ketiga program tersebut di Comand prompt
Tugas
Buatlah class Balok yang diturunkan dari class PersegiPanjang berikut!
1: public class PersegiPanjang {
2: double panjang;
3: double lebar;
4: public PersegiPanjang(double panjang, double lebar) {
5: this.panjang = panjang;
6: this.lebar = lebar;
7: }
8: double hitungLuas() {
9: return (panjang * lebar);
10: }
11: double getPanjang() {
12: return panjang;
13: }
14: double getLebar() {
15: return lebar;
16: }
17: }
33
Pada class Balok lakukan overriding method hitungLuas() agar relevan untuk hitung
luas Balok!
Tugas dikerjakan dibawah ini dengan tulis tangan:
Tanggal : Nilai : Paraf :
34
Modul 7Polimorfisme
Tujuan :Mahasiswa mampu mengimplementasikan konsep polimorfisme seperti overiding, dan
abstract class dalam pemrograman.
Teori Singkat :
Salah satu pilar Pemrograman Berorientasi Objek adalah polymorfisme yaitu
kemampuan beberapa objek bertipe sama bereaksi secara berbeda terhadap “pesan”
yang sama.
Dalam Java, kita dapat membuat referensi yang merupakan tipe dari superclass ke
sebuah object dari subclass tersebut.
Prosedur LKP 1: Implementasi Polimorfisme pada kelas Shape
1. Buka Notepad ++
2. Pilih File New
3. Membuat sebuah Class induk dengan nama Shape
1: class Shape {
2: private String name;
3: Shape(String aName) {
4: name=aName;
5: }
6: public String getName() {
7: return name;
8: }
9: public float calculateArea() {
10: return 0.0f;
11: }
12: }
4. Kemudian buat subclass dari Shape
1: class Circle extends Shape {
2: private int radius;
35
3: Circle(String aName) {
4: super(aName);
5: radius = 3;
6: }
7: public float calculateArea() {
8: float area;
9: area = (float) (3.14 * radius * radius);
10: return area;
11: }
12: }
5. Kemudian buat subclass ke 2 dari Shape
1: class Square extends Shape {
2: private int side;
3: Square(String aName) {
4: super(aName);
5: side = 3;
6: }
7: public float calculateArea() {
8: int area;
9: area = side * side;
10: return area;
11: }
12: }
6. Kemudian buat Kelas Utama dari Shape
1: class ShapeTest {
2: public static void main(String argv[]) {
3: Circle c = new Circle("Circle C");
4: Square s = new Square("Square S");
5: Shape shapeArray[] = {c, s};
6: for (int i=0; i<shapeArray.length; i++) {
7: System.out.println("The area of " + shapeArray[i].getName()+ "
is " + shapeArray[i].calculateArea()+" sq. cm.\n");
8: }
9: }
10: }
7. Simpan ketiga program diatas dengan nama file sesuai dengan nama kelas.
8. Compile ketiga program tersebut di Comand prompt
36
Prosedur LKP 2: Implementasi Polimorfisme pada kelas Abstrak
1. Buka Notepad ++
2. Pilih File New
3. Membuat sebuah Class induk dengan nama Karyawan
1: import javax.swing.JOptionPane;
2:
3: public abstract class Karyawan
4: {
5: private String Nama;
6: private String NIP;
7:
8: public Karyawan()
9: {
10: input_karyawan();
11: }
12:
13: public abstract long tunjangan();
14:
15: public abstract long total_gaji();
16:
17: public void input_karyawan()
18: {
19: Nama = JOptionPane.showInputDialog("Masukkan nama Anda :");
20: NIP = JOptionPane.showInputDialog("Masukkan NIP Anda :");
21: this.Nama= Nama;
22: this.NIP=NIP;
23: }
24:
25: public void tampil_karyawan()
26: {
27: JOptionPane.showMessageDialog(null,"Nama Anda :" +this.Nama+
"\nNip Anda :" +this.NIP);
28: }
29: }
4. Kemudian buat subclass dari Karyawan
1: import javax.swing.JOptionPane;
37
2:
3: public class Karyawan_Honor extends Karyawan
4: {
5: private long Gaji;
6:
7: public Karyawan_Honor()
8: {
9: input_KaryawanHonor();
10: }
11:
12: public void input_KaryawanHonor()
13: {
14: String gaji ="";
15:
16: gaji = JOptionPane.showInputDialog("Masukkan gaji pokok :");
17:
18: this.Gaji = Long.parseLong(gaji);
19: }
20:
21: public long tunjangan()
22: {
23: return(0);
24: }
25:
26: public long total_gaji()
27: {
28: return(Gaji + this.tunjangan());
29: }
30: public void tampil_karyawan_Honor()
31: {
32: super.tampil_karyawan();
33: JOptionPane.showMessageDialog(null,"gaji :"
+this.Gaji+ "\nTunjangan yang diterima :"
+this.tunjangan()+ "\nTotal Gaji :"
this.total_gaji(),"OutputKaryawanHonor",JOptionPane.
PLAIN_MESSAGE);
34: }
35: }
5. Kemudian buat subclass ke 2 dari Karyawan
1: import javax.swing.JOptionPane;
38
2:
3: public class Karyawan_Tetap extends Karyawan
4: {
5: private long Gaji;
6: private long Anak;
7:
8:
9: public Karyawan_Tetap()
10: {
11: input_karyawantetap();
12: }
13:
14: public void input_karyawantetap()
15: {
16: String gaji ="";
17: String anak="";
18:
19: gaji = JOptionPane.showInputDialog("Masukkan gaji
pokok :");
20: anak = JOptionPane.showInputDialog("jumlah
Anak :");
21:
22: this.Gaji = Long.parseLong(gaji);
23: this.Anak = Long.parseLong(anak);
24: }
25:
26: public long tunjangan()
27: {
28: if(Anak<2)
29: {
30: return(20*Gaji/100);
31: }
32: else
33: {
34: return(35*Gaji/100);
35: }
36: }
37:
38: public long total_gaji()
39: {
39
40: return(Gaji + this.tunjangan());
41: }
42: public void tampil_karyawan_Tetap()
43: {
44: super.tampil_karyawan();
45: JOptionPane.showMessageDialog(null,"gaji :" +this.Gaji+ "\
nJumlah Anak :" +this.Anak+
"\nTunjangan yang diterima:" +this.tunjangan()+ "\
nTotal Gaji yang diterima:" +this.total_gaji(),
"OutputKaryawanTetap",JOptionPane.PLAIN_MESSAGE);
46: }
47: }
6. Kemudian buat Kelas Utama dari Karyawan
1: public class UtamaKaryawan{
2:
3: public static void main(String[]args){
4: Karyawan_Tetap Bank = new Karyawan_Tetap();
5: Bank.tampil_karyawan_Tetap();
6: Karyawan_Honor Bank1=new Karyawan_Honor();
7: Bank1.tampil_karyawan_Honor();
8: }
9: }
7. Simpan ketiga program diatas dengan nama file sesuai dengan nama kelas.
8. Compile ketiga program tersebut di Comand prompt
Tugas
1. Ubahlah class Shape pada percobaan A menjadi class abstract dan uji kembali class
ShapeTest!
40
Tanggal : Nilai : Paraf :
41
2. Buatlah class Triangle yang merupakan subclass Shape pada percobaan A!
42
Tanggal : Nilai : Paraf :
43
Modul 8Interface
Tujuan :Mahasiswa mampu mengimplementasikan konsep polimorfisme seperti overiding, dan
abstract class dalam pemrograman.
Teori Singkat :
Interface adalah jenis khusus dari blok yang hanya berisi method signature(atau
constan). Interface mendefinisikan sebuah(signature) dari sebuah kumpulan method
tanpa tubuh.
Prosedur LKP 1: Implementasi Interface
1. Buka Notepad ++
2. Pilih File New
3. Membuat sebuah Class interface dengan nama Login
1: public interface Login {2: public void setUser(String usr);3: public void setPassword(String pwd);4: public Boolean isValid(String usr,String ver_usr,String pwd,String ver_pwd);5: }
4. Kemudian buat class Operator
1: public class Operator {2: protected String nama;3: protected String kode;4:5: public Operator(String nama_op, String kode_op) {6: this.nama = nama_op;7: this.kode = kode_op;8: }9:10: public Operator() {11: nama = "user";12: kode = "1234";13: }14:
44
15: public void setKode(String kode_op) {16: this.kode = kode_op;17: }18:19: public void setNama(String nama_op) {20: this.nama = nama_op;21: }22:23: public String getKode() {24: return kode;25: }26:27: public String getNama() {28: return nama;29: }30: }
5. Kemudian buat subclass dari Operator
1: public class Karyawan extends Operator implements Login{2:3: public Karyawan() {4: super("Lydia Annisa","59081003010");5: }6:7: public Karyawan(String nama, String kode){8: super(nama,kode);9: }10:11: public void setUser(String usr)12: {13: this.nama = usr;14: }15: public void setPassword(String pwd)16: {17: this.kode = pwd;18: }19: public Boolean isValid(String usr,String ver_usr,String pwd,String
ver_pwd)20: {21: return (usr.compareTo(ver_usr)==0&&pwd.compareTo(ver_pwd)==0);22: }23: public void cari_usr(Karyawan[] K,int n,String usr)24: {25: 26: int i =0;27: String pesan = "";
45
28: Boolean ketemu = false;29:30: while((i<n)&&(!ketemu))31: {32: if((K[i].getNama()).compareTo(usr)==0)33: {34: pesan = "DATA DITEMUKAN!\n";35: pesan += "================\n";36: pesan += "nama : "+K[i].getNama()+'\n';37: pesan += "kode : "+K[i].getKode();38:39: JOptionPane.showMessageDialog(null,pesan);40: ketemu = true;41: }42: i++;43: }44: if(!ketemu)45: {46: JOptionPane.showMessageDialog(null,"DATA TIDAK
DITEMUKAN!");47: }48: }49: }
6. Kemudian buat Kelas Utama
1: public class Main {2: public static void main(String[] args) {3: // TODO code application logic here4: Karyawan[] K;5: String input_nama = "";6: String input_kode = "";7: String cari_nama = "";8: int i = 0;9: int n = 5;10:11: K = new Karyawan[n];12: for(i=0;i<n;i++)13: {14:15: input_nama = JOptionPane.showInputDialog("nama Mahasiswa "+
(i+1));16: input_kode = JOptionPane.showInputDialog("nim mahasiswa "+(i+1));17:18: K[i] = new Karyawan(input_nama,input_kode);19: }20: 21: cari_nama = JOptionPane.showInputDialog("masukkan nama yang ingin
46
dicari "); 22: 23: K[0].cari_usr(K, n, cari_nama);24:25: }26:27: }
7. Simpan ketiga program diatas dengan nama file sesuai dengan nama kelas.
8. Compile ketiga program tersebut di Comand prompt.
Tugas
Buatlah program untuk membandingkan nilai dengan menggunakan konsep interface
47
Tanggal : Nilai : Paraf :
48