modul pbo baru

59
Buku Praktikum Pemrograman Berorientasi Objek Untuk Mahasiswa Jurusan Manajemen Informatika jenjang Diploma Program Studi Sistem Informasi Oleh: Dwi Rosa Indah, ST Nama Mahasiswa :______________________________ Nim :__________________________ ____ 1

Upload: hastri-diahfamily

Post on 23-Jun-2015

4.126 views

Category:

Technology


5 download

DESCRIPTION

Modul Praktikum Pemrograman Berorientasi Objek (PBO) 2010 ^^

TRANSCRIPT

Page 1: Modul pbo baru

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

Page 2: Modul pbo baru

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

Page 3: Modul pbo baru

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

Page 4: Modul pbo baru

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

Page 5: Modul pbo baru

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

Page 6: Modul pbo baru

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

Page 7: Modul pbo baru

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

Page 8: Modul pbo baru

Tugas dikerjakan dibawah ini dengan tulis tangan:

Tanggal : Nilai : Paraf :

3. Buatlah program java untuk membentuk bintang segitiga seperti gambar dibawah ini :

** *

8

Page 9: Modul pbo baru

* * *

Tanggal : Nilai : Paraf :

Modul 3Class BufferedReder dan

9

Page 10: Modul pbo baru

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

Page 11: Modul pbo baru

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

Page 12: Modul pbo baru

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

Page 13: Modul pbo baru

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

Page 14: Modul pbo baru

Gambar 1: Input Pertama

Tugas dikerjakan dibawah ini dengan tulis tangan:

14

Page 15: Modul pbo baru

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

Page 16: Modul pbo baru

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

Page 17: Modul pbo baru

• 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

Page 18: Modul pbo baru

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

Page 19: Modul pbo baru

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

Page 20: Modul pbo baru

• 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

Page 21: Modul pbo baru

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

Page 22: Modul pbo baru

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

Page 23: Modul pbo baru

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

Page 24: Modul pbo baru

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

Page 25: Modul pbo baru

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

Page 26: Modul pbo baru

26

Page 27: Modul pbo baru

Tanggal : Nilai : Paraf :

2. Buatlah program dengan kasus yang mengandung overloading method

27

Page 28: Modul pbo baru

Tanggal : Nilai : Paraf :

28

Page 29: Modul pbo baru

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

Page 30: Modul pbo baru

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

Page 31: Modul pbo baru

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

Page 32: Modul pbo baru

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

Page 33: Modul pbo baru

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

Page 34: Modul pbo baru

Pada class Balok lakukan overriding method hitungLuas() agar relevan untuk hitung

luas Balok!

Tugas dikerjakan dibawah ini dengan tulis tangan:

Tanggal : Nilai : Paraf :

34

Page 35: Modul pbo baru

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

Page 36: Modul pbo baru

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

Page 37: Modul pbo baru

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

Page 38: Modul pbo baru

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

Page 39: Modul pbo baru

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

Page 40: Modul pbo baru

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

Page 41: Modul pbo baru

Tanggal : Nilai : Paraf :

41

Page 42: Modul pbo baru

2. Buatlah class Triangle yang merupakan subclass Shape pada percobaan A!

42

Page 43: Modul pbo baru

Tanggal : Nilai : Paraf :

43

Page 44: Modul pbo baru

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

Page 45: Modul pbo baru

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

Page 46: Modul pbo baru

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

Page 47: Modul pbo baru

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

Page 48: Modul pbo baru

Tanggal : Nilai : Paraf :

48