LAPORAN PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK 3 "ENCAPSULATION" PDF

Title LAPORAN PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK 3 "ENCAPSULATION"
Author Fajri Novita
Pages 31
File Size 556.5 KB
File Type PDF
Total Downloads 117
Total Views 293

Summary

LAPORAN MODUL III PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK “ENCAPSULATION” Disusun untuk Memenuhi Matakuliah Praktikum Pemrograman Berorientasi Objek Dibimbing oleh Heru Wahyu Herwanto, S.T., M.Kom. Oleh: Fajri Novitasari 170533628549 S1 PTI ‘17 OFF A UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK JURUSA...


Description

LAPORAN MODUL III PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK “ENCAPSULATION”

Disusun untuk Memenuhi Matakuliah Praktikum Pemrograman Berorientasi Objek Dibimbing oleh Heru Wahyu Herwanto, S.T., M.Kom.

Oleh: Fajri Novitasari

170533628549 S1 PTI ‘17 OFF A

UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA OKTOBER 2018

I.

Tujuan Praktikum 1. Menerapkan konsep encapsulation. 2. Menyembunyikan data. 3. Mengakses data yang disembunyikan. 4. Menggunakan class JButton dan melakukan mekanisme event handling

II.

Dasar Teori 1.

Konsep encapsulation. Encapsulation atau enkapsulasi adalah metode untuk mengatur

struktur class dengan cara untuk menyembunyikan informasi detail dari suatu class. Struktur class yang dimaksud adalah property dan method. Dengan

enkapsulasi,

kita

bisa

membuat

pembatasan

akses

kepada property dan method, sehingga hanya property dan method tertentu saja yang bisa diakses dari luar class. Enkapsulasi juga dikenal dengan istilah ‘information hiding’. Ada dua jenis method yang digunakan dalam enkapsulasi, yaitu mutator method dan accessor method. Mutator method digunakan untuk mengubah atau memberi nilai variabel pada class, baik berupa instance maupun static, sedangkan accessor method digunakan untuk membaca nilai variabel pada class, baik berupa instance maupun static.

2.

Penyembunyian data dan pengaksesan data. Dua hal yang mendasar dalam enkapsulasi adalah adanya data yang

disembunyikan dan bagaimana cara untuk mengakses data tersebut. Information hiding adalah proses menyembunyikan informasi dari suatu class sehingga informasi tersebut tidak dapat diakses dari luar dengan cara memberikan modifier “private” ketika mendeklarasikan attribute atau method. Interface to access data adalah cara melakukan perubahan terhadap attribute yang telah disembunyikan.Caranya yaitu dengan membuat interface berupa method untuk menginisialisasi atau merubah nilai dari attribute tersebut.

3.

Jenis Enkapsulasi Ada 3 jenis dalam oop untuk mengatur hak akses dari suatu property dan method, yaitu : 1. Public. Ketika sebuah property atau method dinyatakan sebagai public, maka seluruh kode program di luar class bisa mengaksesnya, termasuk class turunan. 2. Protected,

jika

sebuah

property

atau

method

dinyatakan

sebagai protected, berarti property atau method tersebut tidak bisa diakses dari luar class, namun bisa diakses oleh class itu sendiri atau turunan

class

tersebut.

Apabila

kita

mencoba

mengakses protected property atau protected method dari luar class, akan menghasilkan error 3. Private, Jika sebuah property atau method di-set sebagai private, maka satu-satunya yang bisa mengakses adalah class itu sendiri. Class lain tidak bisa mengaksesnya, termasuk class turunan. 4.

Pengenalan class JButton Class JButton merupakan class dari package javax.swing yang digunakan

untuk membuat komponen berupa tombol berisi teks maupun icon. Bila ingin membuat tombol interaktif yang icon–nya dapat berubah saat pointer mouse diarahkan pada tombol tersebut, maka dapat diatur dengan menggunakan method setRolloverIcon(iconObjectName). Kelas JButton merupakan kelas turunan dari kelas AbstractButton yang terletak di paket javax.swing. Di beberapa contoh program di artikel Memahami Cara Menangani Aksi (Event) Di Pemrograman Java

dan Penanganan ActionEvent Di Java

(actionPerformed), telah digunakan kelas JButton untuk memicu action event dan bagaimana event tersebut ditangani. Metoda-metoda yang dimiliki kelas JButton merupakan metoda turunan dari kelas AbstractButton. Metoda isSelected yang dipanggil melalui obyek check box merupakan salah satunya. Karena kelas

JCheckBox adalah juga turunan dari kelas AbstractButton, maka metoda tersebut dapat dipanggil melalui obyek (instance) dari kelas JCheckBox. Dibatasi hanya sampai pada superclass JComponent, hirarkhi turunan dari kelas JButton adalah sebagai berikut:

Kelas JButton memiliki lima buah konstruktor untuk mengkonstruksi obyek button secara berbeda. Empat dari lima konstruktor kelas JButton yang paling sering digunakan terdapat dalam tabel berikut ini. Konstruktor

Keterangan

JButton()

Mengkonstruksi objek button tanpa teks dan icon

JButton(Icon icon)

Mengkontruksi objek button dengan icon

JButton(String text)

Mengkontruksi objek button dengan teks

JButton(String text, Icon icon)

Mengkontruksi objek button dengan teks dengan icon

5.

Mekanisme event handling. Package javax.swing dan package java.awt memang memiliki komponen yang sifatnya berbeda terhadap platform yang digunakan, tetapi kedua package ini memiliki mekanisme event handling yang sama. Dalam aplikasi berbasis GUI, tentu banyak event yang dapat dilakukan sehingga membutuhkan bantuan dari event listener dan event handler yang terdapat pada package java.awt.event. Event adalah peristiwa yang distimulasi oleh user terhadap komponen GUI. Event listener merupakan pendeteksi terjadinya event. Sedangkan event handler merupakan blok yang akan memproses event agar memberikan aksi tertentu.

6.

Tipe Event Java mempunyai beberapa tipe event selain action event. Tipe-tipe event Java (Java event types) sebenarnya merupakan kelas-kelas event. Kelas event dapat menjadi tipe parameter dari metoda yang didefinisikan di dalam interfes yang bersesuaian dengan tipe event. Objek kelas event berisi properti-properti yang berkaitan dengan event tersebut. Setiap nama tipe event mempunyai nama interfes listener dan nama metoda untuk registrasi yang bersesuaian kecuali interfes (interface) MouseMotionListener. Berikut ini adalah tabel beberapa tipe event, listener dan kelas (source object) yang memicu munculnya event:

Setiap event mempunyai interfes yang harus diimplementasikan oleh obyek pendengar (listener object), sedangkan obyek pendengar harus mendeklarasikan ulang semua metoda (handler) yang dimiliki interfes untuk menangani event. Dari tabel di atas, Anda dapat melihat bahwa MouseEvent mempunyai

dua

buah

MouseMotionListener.

listener

yaitu

MouseListener

dan

juga

7.

Accessor dan Mutator Acessor adalah sebuah konsep dimana ada sebuah method yang di gunakan untuk mengembalikan nilai dari field/variable yang memiliki hak akses private/protected. Kebalikan dari Accessor, mutator meimiliki sifat yang sangat berbeda dengan Acessor, karena mutator akan merubah data dari sebuah Field/Variable yang bersangkutan.

III.

Tugas Latihan 1. Nama Program Source Code

: Bus Mini :

a) Source Code “Bus1” class Bus1 { //inisialisasi variabel dengan modifier public public int penumpang=5; public int maxPenumpang=15; public void cetak() //mencetak jumlah penumpang { System.out.println("Penumpang Bus Mini sekarang adalah : "+penumpang); System.out.println("Penumpang maksimal seharusnya adalah : "+maxPenumpang); } }

b) Source Code “UjiBus1” public class UjiBus1 { public static void main(String[] args) { System.out.println("\n***** PENUMPANG BUS MINI BLITAR RAYA*****"); Bus1 busMini = new Bus1(); //membuat objek busMini dari class Bus1 System.out.println("\n\tJumlah Penumpang Awal"); busMini.cetak(); //mencetak jumlah penumpang awal busMini.penumpang = busMini.penumpang + 7;

System.out.println("\n\tJumlah Penumpang Setelah Ditambah 7"); busMini.cetak(); //mencetak jumlah penumpang setelah ditambah 7 busMini.penumpang = busMini.penumpang 3; System.out.println("\n\tJumlah Penumpang Setelah Dikurang 3"); busMini.cetak(); //mencetak jumlah penumpang setelah dikurang 3 busMini.penumpang = busMini.penumpang + 9; System.out.println("\n\tJumlah Penumpang Setelah Ditambah 9"); busMini.cetak(); //mencetak jumlah penumpang setelah ditambah 9 } }

Hasil Program

:

a) Hasil program “Bus1”

b) Hasil program “UjiBus1”

Penjelasan

:

Program diatas menampilkan penumpang Bus Mini Blitar Raya, pada program belum menerapkan enkapsulasi. Pada syntax class Bus1

dideklarasikan variabel penumpang=5, maxPenumpang=5 bertipe data int dengan modifier public. Selanjutnya fungsi cetak dengan modifier public yang digunakan untuk mencetak jumlah penupang. Pada fungsi cetak terdapat perintah untuk menampilkan output dari penumpang bus mini dengan memanggil

variabel

syntaxnya

penumpang

System.out.println("Penumpang Bus Mini sekarang adalah "+penumpang)

:

dan menampilkan penumpang maximal dengan cara

memanggil

variabel

System.out.println("Penumpang "+maxPenumpang).

maxPenumpang maksimal

sytaxnya

seharusnya

adalah

:

Pada program class Bus1 tidak dapat menampilkan

output karena tidak terdapat main method yang berfungsi untuk menampilkan output. Selanjutnya pada class UjiBus1 yang memiliki modifier public, pertama membuat fungsi main digunakan method public static void main (String[] args). Static

pada method main berarti method main

tidak mengubah atau menggunakan objek yang diciptakan oleh kelas tersebut, sehingga dapat dikatakan berdiri sendiri, tidak terikat dengan objek dan akan membuat fungsi dapat dieksekusi langsung tanpa harus membuat instansiasi objek dari class. args

Dalam method main terdapat parameter String[]

berupa array dengan tipe data String, parameter tersebut akan

menampung semua argumen yang diberikan ke program . Pada fungsi main pertama

menampilkan

judul

System.out.println("\n*****

dari

program

PENUMPANG

RAYA*****"), kemudian membuat objek baru

BUS

dengan

syntax

MINI

BLITAR

yaitu busMini dari class Bus1

syntaxnya yaitu Bus1 busMini = new Bus1() . Menampilkan Jumlah penumpang awal dengan memanggil objek bisMini dan fungsi cetak, syntaxnya busMini.cetak(). Untuk mendapatkan jumlah penumpang yang ditambah maka variabel penumpang ditambah dengan 7, syntaxnya busMini.penumpang

=

busMini.penumpang

+

7

, kemudian untuk

menampilkan output hasil setelah ditambah 7 digunakan fungsi cetak dengan syntax busMini.cetak(). Untuk mendapatkan jumlah penumpang seteleh

dikurangi 9 maka variabel penumpang dikurangi dengan 3, kemudian untuk menampilkan

output

busMini.cetak().

setelah

hasil

setelah

dikurangi

3

dengan

syntax

Selanjutnya untuk mendapatkan jumlah penumpang

ditambah

9

busMini.penumpang

+

dengan 9

syntax

busMini.penumpang

dan untuk menampilkan output hasil setelah

dijumlah dengan menggunakan syntax busMini.cetak(). 2. Nama Program Source Code

=

: Bus Besar :

a) Source Code “Bus2” class Bus2 { //inisialisasi variabel dengan modifier private private int penumpang=0; private int maxPenumpang=40; public void addPenumpang(int penumpang) //menghitung jumlah penumpang { int add; add=this.penumpang+penumpang; if(add>maxPenumpang) //kondisi bila jumlah penumpang melebihi batas { System.out.println("Penumpang Bus Besar sekarang :"+add); System.out.println("Penumpang maksimal seharusnya : "+maxPenumpang); System.out.println("Jumlah penumpang melebihi batas."); } else { this.penumpang=add; } } public void cetak() //mencetak jumlah penumpang { System.out.println("Penumpang Bus Besar sekarang : "+penumpang); System.out.println("Penumpang maksimal seharusnya : "+maxPenumpang); } }

b) Source Code “UjiBus2” public class UjiBus2

{ public static void main(String[] args) { System.out.println("\n***** PENUMPANG BUS BESAR BLITAR RAYA *****"); Bus2 busBesar=new Bus2(); System.out.println("\n\tJumlah Penumpang Awal"); busBesar.cetak(); System.out.println("\n\tJumlah Penumpang Setelah Ditambah 20"); busBesar.addPenumpang(20); busBesar.cetak(); System.out.println("\n\tJumlah Penumpang Setelah Dikurang 3"); busBesar.addPenumpang(-3); busBesar.cetak(); System.out.println("\n\tJumlah Penumpang Setelah Ditambah 17"); busBesar.addPenumpang(17); busBesar.cetak(); System.out.println("\n\tJumlah Penumpang Setelah Ditambah 9"); busBesar.addPenumpang(9); } }

Hasil Program

:

a) Hasil program “Bus2”

b) Hasil program “UjiBus2”

Penjelasan

:

Program diatas menampilkan penumpang Bus Besar Blitar Raya. Program ini menggunakan class Bus2. Pada awal program, dideklarasikan terlebih dahulu variabel penumpang=0, maxPenumpang=40 bertipe data int dengan modifier private. Selanjutnya fungsi addPenumpang yang digunakan untuk menghitung jumlah penumpang, pada fungsi dideklarasikan variabel penumpang

dan add dengan tipe data int. Kemudian mendeklarasikan

add=this.penumpang+penumpang

dimana

nilai

add

merupakan

penjumlahan variabel penumpang=0 dengan nilai penumpang yang baru. Terdapat

kondisi

jika

if(add>maxPenumpang).

jumlah

penumpang

melebihi

batas,

Jika kondisi benar, yaitu penumpang melebihi

batas maka program akan menampilkan output jumlah penumpang bus besar dan maximal penumpang dengan memanggil variabel add dan maxPenumpang dan menampilkan "Jumlah penumpang melebihi batas". Apabila kondisi salah maka akan menampilkan hasil dari syntax this.penumpang=add. Pada fungsi cetak digunakan untuk mencetak output jumlah penumpang. System.out.println("Penumpang Bus Besar sekarang: "+penumpang)

digunakan untuk menampilkan jumlah penumpang dengan memanggil variabel

penumpang.

System.out.println("Penumpang

maksimal

seharusnya : "+maxPenumpang)

digunakan untuk menampilkan jumlah

maximal penumpang dengan memanggil variabel maxPenumpang. 3. Nama Program Source Code

: Gaji Pegawai :

a) Source Code “GajiPegawai” class GajiPegawai { //deklarasi variabel dengan modifier private private double gajiKotor, pajak, gajiBersih; private double potongan=75000; private String nama = "Surya"; public void setGaji(double gaji) //mengatur nilai gajiKotor { gajiKotor=gaji; } public void hitungPajak() //menghitung nilai pajak { pajak=0.2*gajiKotor; } public void hitungGaji() //menghitung nilai gajiBersih { gajiBersih=gajiKotor-pajak-potongan; } public String namaPegawai() //menampilkan nama { return nama; } public double getGajiKotor() //menampilkan nilai gajiKotor { return gajiKotor; } public double getPajak() //menampilkan nilai pajak { return pajak; } public double getPotongan() //menampilkan nilai potongan { return potongan; } public double getGajiBersih() //menampilkan nilai gajiBersih { return gajiBersih; }

}

b) Source Code “UjiGajiPegawai” import java.io.*; public class UjiGajiPegawai { public static String bacaInputan(){ String baca=""; InputStreamReader input = new InputStreamReader (System.in); BufferedReader buf = new BufferedReader (input); try{ baca = buf.readLine(); } catch(IOException e){ System.out.println("Error!"); } return baca; } public static void main(String[] args) { GajiPegawai hasilgaji = new GajiPegawai(); double gaji; System.out.println("\n **** GAJI PEGAWAI ****"); System.out.println("Nama Pegawai : "+hasilgaji.namaPegawai()); System.out.print("Masukkan gaji Pegawai : Rp. "); gaji = Double.parseDouble(bacaInputan()); hasilgaji.setGaji(gaji); hasilgaji.hitungPajak(); hasilgaji.hitungGaji(); System.out.println("\nBesar Gaji Kotor : Rp. "+gaji+""); System.out.println("Besar Pajak yang diterima : Rp. "+hasilgaji.getPajak()); System.out.println("Besar Potongan Gaji : Rp. "+hasilgaji.getPotongan()); System.out.println("Besar Gaji Bersih : Rp. "+hasilgaji.getGajiBersih()); } }

Hasil Program

:

a) Hasil Program “GajiPegawai”

b) Hasil Program “UjiGajiPegawai”

Penjelasan

:

Program diatas merupakan program untuk menampilkan gaji pegawai. Pada class GajiPegawai dideklasikan variabel gajiKotor, gajiBersih, private,

potongan=75000

pajak,

bertipe data double dengan modifier

dan variabel nama = “Surya” bertipe data String dengan

modifier private. Pada fungsi setGaji dideklarsikan variabel gaji bertipe double, fungsi ini digunakan untuk menentukan gaji kotor yaitu gajiKotor sama

dengan

gaji

yang diterima dan dapat ditulis syntaxnya

gajiKotor=gaji . Fungsi hitungPajak

digunakan untuk menghitung nilai

pajak, nilai pajak diperoleh dengan perkalian 0.2*gajiKotor dan syntaxnya ditulis pajak=0.2*gajiKotor. Fungsi hitungGaji digunakan untuk mengatur nilai gajiBersih, diperoleh dengan gajiKotor dikurangi pajak dan dikurangi lagi dengan potongan, dapat ditulis dengan syntax gajiBersih=gajiKotor-pajak-potongan.

Fungsi namaPegawai bertipe

data String digunakan untuk menampilkan nama dengan melakukan pengembalian nilai data yang telah dideklarasikan yaitu nama = "Surya". Fungsi getGajiKotor bertipe data double digunakan untuk menampilkan nilai dari gajiKotor yaitu dengan melakukan pengembalian nilia data yang

telah dideklarasikan dengan syntax return gajiKotor. Fungsi getPajak bertipe double digunakan untuk menampilkan nilai pajak dengan syntax return

yaitu mengembalikan nilai pajak yang sudah dihitung

pajak

sebelumnya. Fungsi getPotongan bertipe data double digunakan untuk menampilkan potongan dengan syntax return potongan dimana hasilnya diperoleh dengan memanggil nilai data yang telah dideklarasikan. Fungsi getGajiBersih

bertipe data double digunakan untuk menampilkan nilai

gajiBersih dengan memanggil nilai data yang telah dideklarasikan yaitu gajiBersih dapat ditulis return

gajiBersih.

Pada program class

GajiPegawai tidak dapat menampilkan output karena tidak terdapat main method

yang berfungsi

untuk

menampilkan

UjiGajiPegawai, pertama dideklarasikan import

output.

Pada

class

java.io.*

yang

merupakan paket input/output yang terdapat pada BufferedReader. public static

String

bacaInputan()digunakan

untuk menginputkan data.

Selanjutnya dideklarasikan variabel baca dengan variabel String String baca="".

InputStreamReader

InputStreamReader(System.in)

dan BufferedReader

input=new buf=

new

BufferedReader (input) digunakan untuk membuat objek input dan buf

sehingga dapat membaca variabel yang akan diinputkan ke dalam system. try – catch

digunakan untuk memproses bila terjadi kesalahan atau error,

pada try digunakan untuk memanggil statement-statement yang berpotensi menyebabkan exception dan catch digunakan untuk memproses atau menangani bila terjadi exception. ...


Similar Free PDFs