difisiit.files.wordpress.com · author: ��seven created date: 20141016114347z

35
1 /34 P raktikum Pemrograman B erbasis O bject (PBO ) [MODUL] Ganjil 2014/2015

Upload: others

Post on 18-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

1/34

PraktikumPemrograman BerbasisObject (PBO)[MODUL]

Ganjil2014/2015

Page 2: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

2/34

Daftar Isi

Daftar Isi ............................................................................................................................. 2KONTRAK PRAKTIKUM ................................................................................................ 3MODUL 1 KELAS DAN OBJEK ..................................................................................... 7MODUL 2 POLYM ORPHISM ....................................................................................... 13MODUL 3 INHERITANCE (PEW ARISAN) ................................................................. 19MODUL 4 Pengkapsu lan............................................................................................... .. 23MODUL 5 INTER FACE ...................................................................................... ............ 26MODUL 6 PACKAGE ............................................................................................... ..... 31

Page 3: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

3/34

KONTRAK PRAKTIKUM

Nama Mata Kuliah : Praktikum Pemrogram an Berbasis ObjekSKS : 1Mata Kuliah Prasyarat : Pemrogram an Berbasis ObjekDosen Penangg ung Jawab : Ahmad Rudhiyul Haq, S.KomSemester / Th Ajaran : Ganjil / 2014-2015

Gambaran Umum :

Praktikum ini merupakan praktek dari mata kuliah Pemrogram an Berbasis Objek yang

melipu ti Class dan Object, Polym orfism e, enkapsulaption, inheritence, in terface dan

Package. Pada praktikum ini mahasiswa melakukan pemrograman penggunaan Class dan

inheritence Class yang banyak digunakan untuk pemecahan permasalahan dalam

pemrogram an. Praktikum diserta i dengan latihan-latihan men yelesaikan permasalahan

dengan deklarasi dan penggunaan Class yang tepat.

Mahasiswa diharapkan dapat:

Menyelesaikan masalah dengan mengguna kan konsep OOP yang akan dija lankan

oleh komputer, kemudian mengim plementasikannya menjadi sebuah program

komputer

Merepresentasikan data yang digunakan dalam pemrogram an OOP (baik data input

atau data output) dengan deklarasi dan penggunaan Class yang tepat.

M engetahui & membandingkan macam -macam deklarasi class, penggunaan class,

dan sifat kelebihan OOP yang digunakan dalam permasalahan pemrogram an yang

diselesa ikann ya.

Tujuan Pembelajaran Praktimum

Mahasiswa mengerti konsep OOP (Object Oriented Program ming) / Pemrogram an Berbasis Objekdan dapat menerapkann ya dalam bahasa pemrogram an Java

Rumusan kompetensi Dasar1. Mahasiswa memahami Class dan Objeck2. Mahasiswa memahami Polymorfism e3. Mahasiswa memahami Encapsulaption4. Mahasiswa memahami Inheritence5. Mahasiswa memahami Interface dan pemanfaatannya6. Mahasiswa memahami Package dan pemanfaatannya

Page 4: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

4/34

Referensi / Bahan Bacaan

1. “Java for Dummies”, Barry Burd, Wiley P ublishing, 20072. “Java 6 in 21 Days”, Rogers Cadenhead, SAMS, 20073. Rangsang Purnam a, Tuntunan Pemrogram an Java Jilid 2, Prestasi Pustaka,

20034. Jim Keogh and Mario G iannini, OOP Demystified: A Self-Teaching Guide,

McGraw-Hill/Osborne, Ch. 4, 20045. Knudsen Jonathan, Niemeyer Pat, Learning Java™ , 2nd Edition, O’Reilly, July

2002.6. Horstm ann C, Java Concepts 5th Edition, Barkeley: John Wiley & Sons, Inc 381,

387, 397, 2005.7. Lervik E, Java the UM L Way, Trondheim : John Wiley & Sons, Inc 372, 20028. Savitch W, Absolute Java Second Edition: Addison Wesley 315, 2005

Alur bagi peserta praktikum :

1. Sebelum Pelaksanaan Praktikum , ada Pre Test

2. Pada Tiap Sesi Pelaksanaan Praktikum :

a. Peserta praktikum menerim a dan kemudian mempelajari modul

praktikum.

b. Peserta praktikum mengerjakan tugas pendahuluan yang diberikan.

c. Peserta praktikum melakukan asistensi tugas pendahuluan tersebut.

Asistensi in i digunakan sebagai bagi asiste n untuk menila i kesiapa n

peserta juga berfung si sebaga i ajang diskusi peserta praktikum atas

kesuliatan yang dialam inya.

d. Peserta Praktikum melakukan implementasi Tugas Praktikum di kelas/

e. Peserta praktikum mendem okan implementasi pada asisten. Penilaia n

yang dilakukan oleh asisten bersifat W ISIW YG (What I see Is W hat You

Get)

3. Pada akhir pelaksanaan seluruh sesi praktikum, ada Posttest, berupa test program.

Tugas

NO KRITERIA INDIVIDU KELOMPOK1 Jenis Tugas 1. Pre Test

2. Post Test1. Tugas Pendahu luan2. Tugas Sesi Praktikum

2 Tujuan 1. Mahasiswa memahamiKonsep Struktu Data

M am pu menyelesaika nm asalah yan g diber ikandengan program

3 Jadwal Pengum pulan 1. Diawal Praktikum2. Diakhir Praktikum

1. Di Awal Sesi Praktikum2. Di akhir sesi praktikum

4 Keluaran Tugas 1. Program + Penjelasan 1. Program2. Listing Program beserta

penjelasan

Page 5: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

5/34

Kegi at an % KE T

Pre Te st 5% pre te st

T ugas Penda hul ua 15% n1Kehad iran + Tugas 35% n2

A siste nsi + Lapo ra 35% n3

Postte st + Lap res 10% post test

Bobot Prosentase Penilaian Praktikum :

1. Pre Test 5%

2. Pelaksanaan Praktikum – 6 Sesi / Modul

a. Tugas pendahulua n 15%

b. Kehadiran dan tugas praktikum 35%

c. Asistensi dan laporan praktikum 35%

3. Posttest + Laporan resmi 10%

Form Nilai

Prakt ikum : Pemrograman Berbasis Objek

Sem /Th Aja ran : G enap 2011 /20 12

Kelas : A Asdos :

No NRP NAMA Prete stModul 1 Modul 2 Modu l 3 Modul 4 Modul 5 Modul 6 R ata -ra ta Postte st

+ Lapr esAkhir

Nil aiAkhi r

Nil aiHur ufn1 n2 n3 n1 n2 n3 n1 n2 n3 n1 n2 n3 n1 n2 n3 n1 n2 n3 n1 n2 n3

1 01004 111 00 00 34 85 80 78 85 83 84 83 82 78 85 80 76 83 79 76 85 78 74 84,3 3 80,3 3 77,6 7 78 77,4 5 B+

2 00804 111 00 10 27 83 78 79 85 79 72 81 75 75 84 77 74 85 70 71 84 72 71 83,6 7 75,1 7 73,6 7 65 72,4 9 B

3 01004 111 00 05 65 87 85 88 86 85 87 85 87 86 86 88 87 87 78 79 86 78 77 86,1 7 83,5 0 84,0 0 83 83,1 0 A

4 01004 111 00 09 57 85 80 78 84 82 83 84 78 80 85 80 79 84 72 73 85 74 73 84,5 0 77,6 7 77,6 7 73 77,1 9 B+

5 01004 111 00 07 46 85 79 78 85 83 85 85 80 78 84 78 80 83 74 76 84 77 75 84,3 3 78,5 0 78,6 7 78 77,7 6 B+

6 01004 111 00 09 45 85 79 78 85 83 83 85 78 79 83 79 78 85 75 75 83 76 75 84,3 3 78,3 3 78,0 0 78 77,4 2 B+

7

Pr esent ase N ila i

Nilai Point RangeA 4 > 80

B+ 3,5 >75 – 80B 3 >70 – 75

C+ 2,5 > 65 – 70C 2 >60 – 65D 1 50 - 60E 0 < 50

Catatan : Range Nilai bisa berubah sesua i dengan kondisi kelas

Peraturan Praktikum :

1. Praktikan harus menghadiri setiap sesi praktiku, tidak hadir tanpa keterangan akan

menyebabkan hak menjadi praktikan gugur (nilai E).

2. Tugas pendahu luan diserahkan sebelum praktikum dimulai.

3. Laporan praktikum dianggap sah apabila praktikan telah melakukan asiste nsi sesuai

dengan materi praktikum .

Page 6: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

6/34

4. Laporan resmi adalah gabunga n dari semua laporan praktikum tiap sesi.

5. Perbuatan Plagiat / Copy –Paste / Mencontoh sangat dilarang. Jika ada indikasi, akan

di beri nilai E.

Lain – Lain

Pengum uman : difisiit.wordpress.com

Pertanyaan : [email protected]

Ketua Koordinator Asisten Praktikum / HP :

Bahasa Pemrogram an : Java

Toolo Net Beanso Eclipseo Jeliot, dll

Page 7: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

7/34

MODUL 1KELAS DAN OBJEK

I. TEORI DASAR

1. Class dan Object

Perbedaan Class dan Object

Pada dunia perangkat lunak, sebuah ob yek adalah sebuah komponen perangkat

lunak yang stukturn ya mirip dengan obyek pada dunia nyata. Setiap obyek

dibang un dari sekum pulan data (atribut) yang disebut variabel untuk menjabarkan

karakteristik khusus dari obyek, dan juga terdiri dari sekum pulan method yang

menjabarkan tingka h laku dari ob yek. Bisa tikatakan bahwa ob yek adalah sebua h

perangkat lunak yang berisi sekum pulan variabel dan method yg berhubungan.

Variabel dan method dalam obyek Java secara formal dike tahui sebagai variabel

instance dan method instance. Hal ini dilakukan untuk membedakan dari variabel

class dan method class, dimana akan dibahas kemudian.

Class adalah sturktur dasar dari OOP. Class terdiri dari dua tipe dari anggota

dimana disebut dengan f ield (attribut/properti) dan method. Field merupakan tipe

data yang didefinisikan oleh class, sementara method merupakan operasi. Sebuah

obyek adalah sebuah instance (keturunan) dari class.

Untuk dapat membedakanantara class dan obyek, mari kita mendisku sikan

beberapa contoh berikut ini. K ita memiliki sebua h class mobil dimana dapat

digunakan untuk medefinisikan beberapa obyek mobil. Pada tabel dibawah, mobil

A dan mobil B adalah obyek dari class mobil. Class memiliki field nomor, plat,

warna, manufaktur dan kecepatan yang diisi denga n nilai pada ob yek mobil A dan

mobil B. Mobil juga dapat berakselerasi, berbelok dan melakukan rem.

Ketika diinisialisi, setiap obyek mendapat satu set variabel yang baru.

Bagaim anapun, implem entasi dari method dibagi diantara objek pada class yang

sama. Class menyediakan keuntungan dari reusability. Program mer perangkat

lunak dapat mengg unakan sebuah kelas beberapa ka li untuk membuat banyak

objek.

Instansiasi Class

Untuk membuat sebuah objek atau sebuah instance pada sebuah class. Kita

menggunakan operator new . Sebagai contoh, jika anda ingin membuat instance

dari class string, kita mengguna kan kode berikut :

String str2 = new String(“Hello wor ld!”);

Page 8: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

8/34

Ini juga sama dengan,

String str2 = "Hello";

Variabel Class dan Variabel Method

Selain dari variabel instance, kita juga memungkinkan untuk mendefinis ikan

variabel dari

class, yang nantinya variabe l ini dimiliki o leh class. Ini berarti variabel ini dapa t

memiliki nilai yang sama untuk semua objek pada c lass yang sama. M ereka juga

disebut static member variables.

2. Method

Apakah Method itu dan mengapa menggunakan Method?

Di dalam Java, kita dapat mendefinis ikan ban yak method yang akan kita panggil

dari method yang berbeda. Sebuah method adalah bagian-bag ian kode yang dapat

dipanggil oleh program utama atau dari method lainnya untuk menja lankan fungsi

yang spesifik. Berikut adalah karakteris tik dari method :

1. dapat mengem balikan satu nilai atau tidak sama sekali

2. dapat diterim a beberapa param eter yang dibutuhkan atau tidak ada parameter

sama sekali. Parameter bisa juga disebut sebagai argumen dari fungsi

3. setelah method telah selesai dieksek usi, dia akan kembali pada method yang

memanggiln ya.

Sekarang mengapa kita butuh untuk membuat banyak method? Mengapa kita

tidak menuliskan semua kode pada sebuah method? Hal ini karena penyelesaia n

masalah yang sangat efektif adalah memecah masalah-m asalah tersebu t menjadi

beberapa bagian. Kita juga dapat melak ukan hal ini di Java dengan membuat

method untuk mengatasi bag ian tertentu dari masa lah. Sebuah permasalaha n dapat

dipecah-pecah menjadi beberapa bagian kecil. Hal ini sanga t baik seka li untuk

membuat program yang sangat besar.

/* Disimpan dalam file “Manusia.java” *///C lass Deklarasipublic class manusia{

//Variab elpublic String nama;

//Konstruktorpublic manusia(String n){

Page 9: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

9/34

this.nam a = n;}

//Methodpublic String tampilkanNama(){return nama;}public void belajar(){System.out.println("Belajar PBO, Matematika, Fisiki ");}public void kerja(){System.out.println("K erja...kerjaaa...");}}

Adapun contoh kode untuk menginstantiasi kelas manusia menjadi objek Andi yang

mengim plem entasikan metodh: tampilkanNama dan makan adalah sebagai berikut.

/* Disimpan dalam file “budi.java”*/class budi{public static void main(String arg[]){manusia budi= new manusia("Budi");System.out.println ("Nama= "+ budi.tampilkanN ama());budi.be lajar();}}

Hasil eksekusi terhadap class budi adala h sebagai berikut:

Nama= Budi

Belajar PBO, Matem atika, Fisiki

II. TUGAS PENDAHULUAN

Buatlah program menggunakan class dan objek dengan nama motor.java, jika

program di jalankan hasiln ya seperti di bawah ini :

Object “motor-1” :

Merk : Yamaha

Pemilik : Pak Darmawan

Object “motor-2” :

Merk : Honda

Page 10: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

10/34

Pemilik : Pak Nasiruddin

III. KEGIATAN PRAKTIKUM

Buatlah kelas mahasisw a dengan atribut/variablel = nama dan npm dan mempunyai

metodh: tampilkanNama, tampilkanN pm, belajar, olahRaga, makan, minum.

Buatlah 3 objek untuk m enginstantiasi kelas mahasiswa dengan atribut nama dan npm

Anda sendiri dan 2 teman Anda dan mengim plementasikan beberapa metodh yang

telah Anda definisikan dalam kelas mahasisw a

IV. TUGAS AKHIR

Buat program dengan nama televOOP.java dengan spesifikasi sebaga i berikut :

Class : Televisi

Object : Televisiku

Attribute

- Merek

- Tipe

- Ukuran

- Tombol volume

- Tombol Channel

Method

- Menyalakan TV

- Memindahkan Channel

- Membesarkan volum e

- Mematikan Televisi

Hasil :

Merek Televisi : Samsung

Tipe Televisi : LCD TV

Ukuran Televisi : 52 inchi

Saat ini televisi sudah on.....

Channel berpindah

Volume bertam bah besar.

Press any key to continue . . .

Page 11: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

11/34

V. CATATAN

Page 12: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

Referensi

[1] Rangsang Purnam a, Tuntunan Pemrogram an Java Jilid 2, Prestasi Pustaka, 2003.

Page 13: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

19 /34

MODUL 2INHERITANCE (PEWARISAN)

I. Teori

Inheritance merupakan pewarisan atr ibut dan method pada sebuah class yang

diperole h dari class yang telah terdefin isi tersebut. Setiap subclass akan mewaris i state

(variabel-variabel) dan behaviou r (method-m ethod) dari superclass-nya. Subclass

kemudian dapat menam bahkan state dan behaviour baru yang spesifik dan dapat pula

memodifikasi (override) state dan behavio ur yang diturunkan oleh superclass- nya.

1. Keuntungan dari inherita nce adalah :

Subclass menyediakan state/behaviour yang spesifik yang membedakan nya dengan

superclas s, hal ini akan memungkinkan program mer Java untuk menggunakan ulang

source code dari superclass yang telah ada. Programmer Java dapat mendefinisikan

superclass khusus yang bersifat generik, yang disebut abstract class, untuk

mendefinis ikan class dengan behaviou r dan state secara umum.

2. Istilah dalam inheritance yang perlu diperhatikan :

Extends : Keyword ini harus kita tambahkan pada definisi class yang menjadi subclass.

Superclass : Superclass diguna kan untuk menunjukkan hirarki class yang berarti class

dasar dari subclass/class anak.

Subclass : Subclass adalah class anak atau turuna n secara hirarki dari supercla ss.

Super : Keyword ini diguna kan untuk memanggil konstruktor dari supercla ss atau

menjadi variabel yang mengacu pada superclas s. Ada beberapa hal yang harus diingat

ketika mengg unakan pemanggil constuktor super:

II. Prepraktikum

1. Apa yang perbedaan antara Induk Kelas dengan Kelas Turunan?

2. Jelaskan keyword super dan extends dalam Pewarisan?

Page 14: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

20/34

III. Kegiatan Praktikum

Pada bagian kegiata n praktikum ini, kita akan belajar membuat class yang

dikelom pokkan dalam package kemudian menggunakan package ini dari class lain.

/*langkah ke-1: Membuat Class Rumah*/

class Rumah

{

private String a = " Rumahmewah ";

public void info()

{

//System.out.println (" Dipanggil pada = "+this);

System.out.println (" ");

System.out.println (" Rumah = "+a);

}

}

}

/*langkah ke-2: Membuat Class rumahindah turunan dari Rumah*/

class rumahindah extends Rumah

{

private String b = " tombol alarm ";

public void info()

{

System.out.println (" ");

super.info();

System.out.println (" rumahindah = "+b);

}

}

*langkah ke-3: Membuat Main Program dengan Nama Class TipeRumah */

public class TipeRumah

{

public static void main ( String[]args )

{

Rumahindah C = new bertingkat();

C.info();

}

}

IV. Tugas Akhir

1. Buatlah program java untuk menurunkan 2 buah kelas turunan dari kelas induk

yang berupa lingkaran dimana program ini dapat menghitu ng luas dan ke liling

lingkaran !2. Tambahan dari asiste n.

Page 15: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

21/34

V. Catatan Praktikum

Page 16: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

Referensi

[1] Knudsen Jonathan, Niemeyer Pat, Learning Java™ , 2nd Edition, O’Reilly, July

2002.

[2] Rangsang Purnam a, Tuntunan Pemrogram an Java Jilid 2,Prestasi Pustaka, 2003.

22 /34

Page 17: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

12 /34

Page 18: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

13/34

MODUL 3POLYMORPHISM

I. Teori

M etode disebu t polimorfis jika aksi yan g dilakukan oleh suatu metode berbed a-beda

tergantu ng pada objek aktual pada saat metode itu dijalankan. P olimorfism e adala h sa lah

satu fitur utama dalam pemrogram an berorienta si objek. Sebagai contoh, sebuah class

induk dengan nama Student mempunyai subcla ss StudentGrad, dan ditam bahkan class

lain dengan nama StudentInfo.

Gambar 1 : Class Student dan subclass nya

Dari gambar diatas class StudentInfo digam barkan mempunyai hubungan

polym orfism e dengan class StudentGrad dan tentunya dengan class induk dari

StudentGrad yaitu class induk Student..

II. Prepraktikum

1. Keuntungan apa yang bisa didapat dengan Polym orphism?

2. Bagaimana hubungan antar teknik overloading dengan Polymorphism?

III. Kegiatan Praktikum

Pada gambar 1 kita membuat tiga object class dengan nama Student, subclass

StudentGrad dan class StudentInfo. Class Student mempunyai method Write yang

digunakan untuk melewatkan argum en untuk kemudian ditampilkan dengan

menggunakan method D isplay.

class Student {

public void Write(int ID, int Grad, String Fname, String Lname) {

m_ID = ID;

Page 19: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

14/34

m_Graduation = Grad;

m_First = Fname;

m_Last = Lname;

}

public void Display(){

System.out.println( "Student: " + m_ID + " " + m_First + " " +

m_Last + " Graduated: " + m_Graduation);

}

private int m_ID, m_Graduation;

private String m_First;

private String m_Last;

}

Subclass Student dengan nama StudentGrad berisi sintaks untuk menampilkaninfo kelulusan. Polimorfism e terjadi antara kedua class StudentGrad dan Student dimanapada kedua class mempunyai dua dua method yang sama tetapi mempun yai bentuk yangberbeda sesuai dengan object yang digunakan untuk memanggiln ya, yaitu Write() danDisplay();

class StudentGrad extends Student {

public void Write(int ID, int Grad, String Fname, String Lname, int

yrGrad, String unSch, String major) {

super.Write(ID, Grad, Fname, Lname);

m_UndergradSchool = unSch;

m_Major = major; m_Grad

= Grad; YearGraduated =

yrGrad;

}

public void Display(){

super.Display();

System.out.println(" Graduated: " + m_Grad + " " +

m_UndergradSchool + " " + m_Major + " " + YearGraduated);

}

private Integer YearGraduated,m_Grad;

private String m_UndergradSchool;

private String m_Major;

}

Class lain yaitu StudentInfo yang digunakan untuk memasukan agumen ke keduamethd pada masing-m asing class Student dan StudentGrad.

class StudentInfo {

public static void main (String args[]) { StudentGrad

myStudent = new StudentGrad(); myStudent.Write(10,

1,"Bob","Smith", 2000,"Columbia

University","CS");

myStudent.Display();

}

}

Page 20: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

15/34

IV. Tugas Akhir

1. Kucing, A yam, dan Anjing merupakan makhluk hidup yang masuk kategor i

hewan, tiap hewan pasti mempunyai identitas ba ik itu berupa tipe hewan dan

suaranya.

Gambar 2 : Class Hewan dan subclass n ya

Potonga n sintaks bisa dituliskan seperti dbawah ini:

class Hewan {

private String tipe;

public Hewan(String tipe){

this.tipe = tipe;

}

public String toString(){

return "Ini adalah "+tipe;

}

public void bersuara(){

}

}

Sintaks class polimorfisme

import java.util.Random;

class Polimorfisme{

public static void main(String args[]){

Hewan[] hewannya = {

new Anjing("Broni", "Herder"),

new Kucing("Kiti", "Persia"),

new Ayam("Toki", "Buras")

};

Hewan pilihHewan;

Random pilih = new Random();

for (int i = 0; i<5 ; i++){

pilihHewan = hewannya[pilih.nextInt(hewannya.length)];

System.out.println("\nPilihan Anda:\n" + pilihHewan);

pilihHewan.bersuara();

}

}

}

Page 21: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

16/34

Sintaks class Anjingclass Anjing extends Hewan{

//sintaks private object

public Anjing(String nama){

//sintaks menampilkan nama

}

public Anjing(String nama, String jenis){

//sintaks menampilkan nama dan jenis hewan

}

public void bersuara(){

//sintaks menampilkan suara hewan

}

public String toString(){

return super.toString()+"/nIni adalah "+jenis+" bernama "+nama;

}

}

Lanjutkan potongan kode program diatas sampai muncul output seperti di

bawah ini:

Pilihan Anda:

Ini adalah Ayam

Ini adalah Buras bernama Toki

Kukuruyuk petok petok

Pilihan Anda:

Ini adalah Kucing

Ini adalah Persia bernama Kiti

Meong meong meong

Pilihan Anda:

Ini adalah Ayam

Ini adalah Buras bernama Toki

Kukuruyuk petok petok

Pilihan Anda:

Ini adalah Anjing

Ini adalah Herder bernama Broni

Guk guk guk

Pilihan Anda:

Ini adalah Anjing

Ini adalah Herder bernama Broni

Guk guk guk

Pilihan diwakilkan denga n data array pada class polimorfism e.

Page 22: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

V. Catatan Praktikum

17 /34

Page 23: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

18/34

Referensi

[1] Jim Keogh and Mario Giannini, OOP Demystified: A Self-Teaching Guide, McGraw-Hill/Osborne, Ch. 4, 2004.

Page 24: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

23/34

MODUL 4Pengkapsulan

I. Teori

Enkapsulasi adalah suatu cara untuk menyembunyikan inform asi detail dari suatu

class. Dua hal yang mendasar dalam enkapsulasi yakni : Inform ation hiding , Interface to

access data.

Enkapsulasi menunjuk pada prinsip dari menyem bun yikan desain atau

mengim plementasikan inform asi yang tidak sesuai pada object yang ada.

Menyem bun yikan elemen dari penggunaan sebuah class dapat dilakukan dengan

pembuatan anggota yang ingin Anda sembunyikan secara private.

Hak akses public memungkinkan semua kelas mengaksesnya, hak akses protecte d

hanya diberikan kepada kelasnya sendiri dan turunann ya, serta kelas-kelas dalam satu

paket. sedangkan private hanya boleh diakses oleh kelasnya sendiri.

II. Prepraktikum

1. Apa yang anda ketahui tentang Inform ation hiding ?

2. Jelaskan tentang Interface to access data dalam konsep Pengkapsulan?

3. Jelaskan mengenai keyword public, protected,@ overide dan private ?

III. Kegiatan Praktikum

Perhatikan kelas manusia dibawah ini!

/*

Disimpan dalam file “manusia.java”

*/

class manusia

{

public String nama;

public manusia(String n)

{

this.nama = n;

}

public String tampilkanNama()

Page 25: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

24/34

{

return nam a;

}

public void makan()

{

System .out.println("N yam ... nyam ... nyam ...");

}

public void kerja()

{

System .out.println("K erja... kerjaaa...");

}

private void bunuhD iri()

{

System .out.println("D or… bruk.. .");

}

}

Andi adalah objek bentukan dari kelas manusia

(9)

/*

Disimpan dalam file “andi.java”

*/

class andi

{

public static void main(S tring arg[])

{

manusia andi= new manusia("A ndi");

System .out.println("N ama= "+ andi.tam pilkanN ama());

andi.m akan();

}

}

Apa yang terjadi jika hak akses private diakses oleh kelas lain?

VI. Kompile dan jalankan kelas manusia dan andi!

VII. Ubah hak akses makan dari public menjadi protec ted dan ulangi praktikum nomor

1! Apaya ng terjadi? Jelaskan!

Page 26: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

25/34

VIII. Tambahkan pada kelas andi untuk memanggil metodh bunuh diri, ulangi

praktikum no 1. Apa yang terjadi? Jelaskan!

IV Tugas Akhir

Diserahakan kepada asisten masing-masing untuk memberikan tugas akhir

dan tugas tambahan.

Page 27: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

26/34

MODUL 5 INTERFACE

I. Teori

Produktifitas dalam pemrogram an dapat ditingkatkan antara la in dengan cara

memaksimalkan kode ya ng dapa t dim anfaatkan berula ng kali ( reusable code). In terface

adalah struktur kode yang diawali kata kunci in terface dan berisi bagian reusable code

berupa abstract method atau konstanta. Semua method dalam interface secara otomatis

memiliki visibilitas public. [1]

Abstract method dalam interface dapat diimplem entasikan dalam class dengan

menggunakan kata kunci implements. Dalam java, satu class han ya dapat menjadi

turunan dari sa tu class namun diperkena nkan untuk dapat mengimplem entasikan lebih

dari satu interface. [2]

Instance atau objek dapat dibentu k dengan memasang kan variabe l bertipe class atau

interface dengan referensi berupa pemangg ilan constructor class. Casting dapat dilakukan

untuk mengubah objek dari tipe superclass menjadi tipe subclass.

II. Prepraktikum

1. Apa yang dimaksud dengan abstract method?

2. Apa yang dimaksud dengan overriding method?

3. Apa yang dimaksud dengan instansiasi?

III. Kegiatan Praktikum

Pada bagian kegiatan praktikum ini, kita akan belajar membuat interface dan

mengimplementasikannya dalam sebuah class.

/*interface berisi abstract method atau method header*/

interface MyComparable {

boolean greaterThan(Object obj);

boolean lessThan(Object obj);

boolean equal(Object obj);

}

/*interface berisi konstanta*/

interface Constants {

int min = 1000;

int max = 9999;

}

/*class mengimplementasikan dua interface*/

Page 28: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

27/34

class FourDigitsNumber implements Constants, MyComparable {

private int value;

public FourDigitsNumber(int initValue) {

/*latihan 1: atur agar nilai yang diinputkan dalam

constructor hanya berada di antara min –

max

*/

}

/*latihan 2: tambahkan method get untuk mengakses value*/

/*overriding method greaterThan*/

public boolean greaterThan(Object obj) {

/*casting from superclass to subclass*/

FourDigitsNumber number = (FourDigitsNumber)obj;

return ( value > number.getValue() );

}

/*latihan 3: lengkapi overriding method interface*/

}

/*Contoh penggunaan class*/

class ExInterface {

public static void main(String [] args) {

FourDigitsNumber number1 = new FourDigitsNumber(700);

FourDigitsNumber number2 = new FourDigitsNumber(1700);

FourDigitsNumber number3 = new FourDigitsNumber(70000);

System.out.println(number1.getValue());

System.out.println(number2.getValue());

System.out.println(number3.getValue());

System.out.println(number1.greaterThan(number2));

System.out.println(number1.lessThan(number2));

System.out.println(number1.equal(number2));

/*latihan 4: modifikasi agar user dapat

menginputkan data*/

}

}

Page 29: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

28/34

IV. Tugas Akhir

1. Segitiga, Lingkaran dan Segiem pat adalah bentuk geometri yang dapat dihitung

luasnya. Gambarkan diagram hirarki class untuk kasus in i. Kemudian tulis kode

program untuk class da n buat program sederhana untuk keperluan pengujian :

atur array dengan elemen berisi referensi ke setia p bentuk geometri di atas,

masukkan data ke dalam nya dan gunaka n untuk memanggil method guna

menghitung luas dari setiap bentuk geometri tersebut.

2. Buatlah sebuah interface dengan nama M tkDasar yang berisi dua buah method

head atau abstract

String tambah(int a, int b);

String kurang(int a, int b);

Buatlah sebuah class dengan nama Pecahan yang terdiri dari: dua variabel

bertipe int yaitu pembilang dan pen yebut, sebuah constructor dengan dua

param eter bertipe int, method set( ) / get( ), method toStr ing( ). Pecahan harus

mengim plementasikan interface MtkDasar.

Buatlah sebuah class CobaPecahan yang berfungsi menguji class Pecahan.

Page 30: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

29/34

V. Catatan Praktikum

Page 31: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

30/34

Referensi

[1] Horstm ann C, Java Concepts 5th Edition, Barkeley: John Wiley & Sons, Inc 381, 387,

397, 2005.

[2] Lervik E, Java the UML Way, Trondheim: John W iley & Sons, Inc 372, 2002.

Page 32: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

31/34

MODUL 6PACKAGE

I. Teori

Package adalah cara Java untuk membuat suatu pustaka class. K ita dapat membuat

package berisi sekum pulan class dan mengg unakan package tersebut dalam class atau

program lain tanpa mem indah kumpulan class ke dalam direktori kerja. Untuk membuat

package, letakkan beberapa file kode .java ke da lam direktor i dan tambahkan kata kunci

package di awal setiap file kode tersebut. Kemudian lakukan kompilasi sehingga dalam

direktor i terbentu k file class. Sebelum suatu package dapat diim port oleh class lain,

tambahkan path dari package ke dalam CLASSPATH. [1]

II. Prepraktikum

1. Bagaimana agar class dalam suatu package dapat digunaka n?

2. Mana yang lebih dahulu ditulis, kata kunci package atau import?

3. Tanda separator apa yang digunakan untuk mem isahkan antara nama package

dengan nama class?

III. Kegiatan Praktikum

Pada bagian kegiata n praktikum ini, kita akan belajar membuat class yang

dikelom pokkan dalam package kemudian menggunakan package ini dari class lain.

/*langkah ke-1: MtkDasar.java dalam direktori matematika*/

package matematika;

public interface MtkDasar {

String tambah(int a, int b);

String kurang(int a, int b);

}

/*langkah ke-2: Pecahan.java dalam direktori matematika*/

package matematika;

public class Pecahan implements MtkDasar {

private int pembilang, penyebut;

public Pecahan(int a, int b) {

/*latihan 1: atur agar penyebut 0 tidak diterima*/

}

/*latihan 2: lengkapi overriding method

Page 33: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

32/34

sesuai interface*/

public String toString() {

/*latihan 3: output yg diharapkan

<cetak pembilang>/<cetak penyebut>

*/

}

}

/*langkah ke-3: mengenalkan package dalam CLASSPATH

untuk linux

*/

set CLASSPATH=/home/<beberapa direktori lain>/matematika:.

/*untuk windows*/

set CLASSPATH=c:\<beberapa direktori lain>\matematika;.

/*langkah ke-4: membuat class yang mengimport

package matematika, letakkan file ini di luar

direktori matematika

*/

import matematika.Pecahan;

class CobaPecahan {

public static void main(String [] args) { Pecahan

pecahan1 = new Pecahan(1, 2); System.out.println("" +

pecahan1 + " + 1/4 " + " = " +

pecahan1.tambah(1, 4));

}

/*latihan 4: modifikasi agar user dapat menginputkan data*/

}

IV. Tugas Akhir

1. M odifikasilah kode program interface M tkDasar.java, dan Pecahan.java agar

dapat menghasilkan return value berupa Object.

2. Lengkapi interface M tkDasar dengan kemampuan matematika dasar yang lain

yaitu kali (untuk mengerjakan operasi perkalian), dan bagi (untuk mengerjakan

operasi pem bagia n). S esuaikan ked ua class lain, P ecahan dan C obaP ecahan.

Page 34: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

33/34

V. Catatan Praktikum

Page 35: difisiit.files.wordpress.com · Author: ��seven Created Date: 20141016114347Z

34/34

Referensi

[1] Savitch W, Absolute Java Second Edition: Addison Wesley 315, 2005.